summaryrefslogtreecommitdiff
path: root/src/providers
AgeCommit message (Collapse)AuthorFilesLines
2013-06-25krb5: do not send pac for IPA users from the local domainSumit Bose5-10/+20
So far we didn't send the PAC of IPA users to the PAC responder during password authentication because group memberships for IPA users can be retrieved efficiently with LDAP calls. Recently patches added PAC support for the AD provider as well and removed the restriction for the IPA users. This patch restores the original behaviour by introducing a new flag in struct krb5_ctx which is only set for the IPA provider. Additionally a different flag is renamed to make it's purpose more clear. Fixes https://fedorahosted.org/sssd/ticket/1995
2013-06-25Revert "Always send the PAC to the PAC responder"Sumit Bose1-18/+20
This reverts commit d153941864fe481399665be8fe583c9317194a99.
2013-06-24Fix typo in pack_authtok()Sumit Bose1-1/+1
2013-06-24KRB5: use the right authtok type for renewalsSumit Bose1-3/+20
2013-06-24IPA: Do not download or store the member attribute of host groupsJakub Hrozek2-2/+0
https://fedorahosted.org/sssd/ticket/1806 The IPA provider attempted to store the original value of member attribute to the cache. That caused the memberof plugin to process the values which was really CPU intensive.
2013-06-24LDAP: Retry SID search based on result of LDAP search, not the return codeJakub Hrozek1-2/+13
2013-06-21failover: if expanded server is marked as neutral, invoke srv collapsePavel Březina1-0/+7
https://fedorahosted.org/sssd/ticket/1947 Otherwise we will do the SRV expansion once again: 1. leaving the old servers in server list 2. meta server is not inserted back in the list, the newly found servers are inserted behind meta server, meta server is orphaned and the new servers are forgotten
2013-06-21collapse_srv_lookup may free the server, make it clear from the APIPavel Březina1-6/+9
https://fedorahosted.org/sssd/ticket/1947
2013-06-21failover: return error when SRV lookup returned only duplicatesPavel Březina1-2/+21
https://fedorahosted.org/sssd/ticket/1947 Otherwise we risk that the meta server is removed from the server list, but without a chance to return, because there may be no fo_server with srv_data = meta. Also if state->meta->next is NULL (it is still orphaned because we try to errornously expand it without invoking collapse first), state->out will be NULL and SSSD will crash. New error code: ERR_SRV_DUPLICATES
2013-06-21failover: do not return invalid pointer when server is already presentPavel Březina1-2/+6
https://fedorahosted.org/sssd/ticket/1947
2013-06-21FO: Check the return value of send_fnJakub Hrozek1-0/+4
2013-06-21Fix dp_copy_optionsJakub Hrozek1-1/+1
2013-06-18nested groups: do not expect any particular number of groupsPavel Březina1-19/+10
2013-06-18nested groups: do not return ENOMEM if num_groups is 0Pavel Březina1-6/+10
talloc_realloc(..., 0) calls talloc_free() and returns NULL. If we process group that contains only users, we errornously return ENOMEM.
2013-06-17Set default realm for enterprise principalsSumit Bose1-0/+12
Enterprise principals require that a default realm is available. To make SSSD more robust in the case that the default realm option is missing in krb5.conf or to allow SSSD to work with multiple unconnected realms (e.g. AD domains without trust between them) the default realm will be set explicitly. Fixes https://fedorahosted.org/sssd/ticket/1931
2013-06-17Use principal from the ticket to find validation entrySumit Bose1-1/+1
If canonicalization or enterprise principals are enabled the realm of the client principal might have changed compared to the original request. To find the most suitable keytab entry to validate the TGT is it better to use the returned client principal. Fixes https://fedorahosted.org/sssd/ticket/1931
2013-06-17handle ERR_ACCOUNT_EXPIRED properlyPavel Březina3-1/+13
https://fedorahosted.org/sssd/ticket/1953
2013-06-17Fix allocation checkJakub Hrozek1-1/+1
2013-06-17nested groups: allocate more space if deref returns more membersPavel Březina1-0/+21
https://fedorahosted.org/sssd/ticket/1894
2013-06-16subdomains: touch krb5.conf when creating new domain-realm mappingsPavel Březina1-0/+8
https://fedorahosted.org/sssd/ticket/1815
2013-06-14AD: Remove ad_options->auth options referenceJakub Hrozek1-1/+0
The options are stored in ad_options->auth_ctx->opts, this member was completely unused and confusing.
2013-06-14AD: Fix segfault in DEBUG messageJakub Hrozek1-1/+1
2013-06-14KRB: Handle preauthentication error correctlyOndrej Kos2-1/+9
https://fedorahosted.org/sssd/ticket/1873 KRB preauthentication error was later mishandled like authentication error.
2013-06-14failover: set state->out when meta server remains in SRV_RESOLVE_ERRORPavel Březina1-0/+1
https://fedorahosted.org/sssd/ticket/1886
2013-06-12Fix minor typosYuri Chornoivan1-1/+1
2013-06-12Use the correct talloc context when creating AD subdomainsJakub Hrozek1-1/+1
sdom was only ever guaranteed to be set when a new domain was being created. sditer is a valid pointer in both cases, so just use that.
2013-06-12be_refresh: send and recv shadow a global declarationPavel Březina2-13/+13
2013-06-12be_ptask: send and recv shadow a global declarationPavel Březina2-11/+11
2013-06-11Fix allocation check in the AD providerJakub Hrozek1-1/+1
https://fedorahosted.org/sssd/ticket/1976
2013-06-10A new option krb5_use_kdcinfoJakub Hrozek11-46/+96
https://fedorahosted.org/sssd/ticket/1883 The patch introduces a new Kerberos provider option called krb5_use_kdcinfo. The option is true by default in all providers. When set to false, the SSSD will not create krb5 info files that the locator plugin consumes and the user would have to set up the Kerberos options manually in krb5.conf
2013-06-10providers: refresh expired netgroupsPavel Březina6-3/+212
https://fedorahosted.org/sssd/ticket/1713
2013-06-10back end: add refresh expired records periodic taskPavel Březina4-0/+32
https://fedorahosted.org/sssd/ticket/1713 Add new option refresh_expired_interval.
2013-06-10back end: periodical refresh of expired records APIPavel Březina2-0/+376
https://fedorahosted.org/sssd/ticket/1713
2013-06-10back end: periodic task APIPavel Březina2-0/+447
https://fedorahosted.org/sssd/ticket/1891
2013-06-10dyndns: Fix NULL checkJakub Hrozek1-1/+1
2013-06-07AD: Store trusted AD domains as subdomainsJakub Hrozek1-2/+364
https://fedorahosted.org/sssd/ticket/364 Looks up trusted domain objects in the LDAP and stores them as AD subdomains. Currently only trusted domains that run NT5 or newer from the same forest are looked up and stored.
2013-06-07AD ID lookups - choose GC or LDAP as appropriateJakub Hrozek1-1/+262
https://fedorahosted.org/sssd/ticket/1557 Some lookups should be performed from GC only -- for example trusted users are only present in the Global Catalog, while some lookups should be performed from LDAP only as not all objects or attributes are replicated to Global Catalog. This patch adds a generic failover mechanism for identity lookups in the AD provider that allows to choose the appropriate source and even fail over to the other source if available.
2013-06-07AD: Add additional service to support Global Catalog lookupsJakub Hrozek3-33/+178
When fixed host names of AD servers are configured in the config file, we can't know (unlike when service discovery is at play) if the servers are Global Catalogs or not. This patch adds a private data to servers read from the config file that denote whether the server can be tried for contacting the Global Catalog port or just LDAP. The GC or LDAP URIs are generated based on contents of this private data structure. Because SSSD sticks to a working server, we don't have to disable or remove the faulty GC servers from the list.
2013-06-07LDAP: Do not store separate GID for subdomain usersJakub Hrozek1-10/+18
As the subdomains are MPG domains, we don't want to store a separate GID for the subdomain users, but rather just create a UPG.
2013-06-07Split generating primary GID for ID mapped users into a separate functionJakub Hrozek1-41/+70
Move the part of sdap_save_user into a separate function so that it can be special cased an only called for users in primary domains, not subdomain users.
2013-06-07LDAP: store FQDNs for trusted users and groupsJakub Hrozek5-12/+36
Because the NSS responder expects the name attribute to contain FQDN, we must save the name as FQDN in the LDAP provider if the domain we save to is a subdomain.
2013-06-07LDAP: split a function to create search basesJakub Hrozek2-29/+73
This function will be used later to fill the sdap_domain structures with search bases.
2013-06-07Move domain_to_basedn outside IPA subtreeJakub Hrozek2-65/+0
The utility function will be reused to guess search base from the base DN of AD trusted domains.
2013-06-07LDAP: return sdap search return code to IDJakub Hrozek5-50/+126
By default, the LDAP searches delete the entry from cache if it wasn't found during a search. But if a search wants to try both Global Catalog and LDAP, for example, it might be beneficial to have an option to only delete the entry from cache after the last operation fails to prevent unnecessary memberof operations for example.
2013-06-07LDAP: new SDAP domain structureJakub Hrozek25-145/+315
Previously an sdap_id_ctx was always tied to one domain with a single set of search bases. But with the introduction of Global Catalog lookups, primary domain and subdomains might have different search bases. This patch introduces a new structure sdap_domain that contains an sssd domain or subdomain and a set of search bases. With this patch, there is only one sdap_domain that describes the primary domain.
2013-06-07LDAP: Pass in a connection to ID functionsJakub Hrozek8-31/+64
Instead of using the default connection from the sdap_id_ctx, allow the caller to specify which connection shall be used for this particular request. Again, no functional change is present in this patch, just another parameter is added.
2013-06-07LDAP: Refactor account info handler into a tevent requestJakub Hrozek2-163/+210
The sdap account handler was a function with its own private callback that directly called the back end handlers. This patch refactors the handler into a new tevent request that the current sdap handler calls. This refactoring would allow the caller to specify a custom sdap connection for use by the handler and optionally retry the same request with another connection inside a single per-provider handler. No functional changes are present in this patch.
2013-06-07LDAP: sdap_id_ctx might contain several connectionsJakub Hrozek23-115/+175
With some LDAP server implementations, one server might provide different "views" of the identites on different ports. One example is the Active Directory Global catalog. The provider would contact different view depending on which operation it is performing and against which SSSD domain. At the same time, these views run on the same server, which means the same server options, enumeration, cleanup or Kerberos service should be used. So instead of using several different failover ports or several instances of sdap_id_ctx, this patch introduces a new "struct sdap_id_conn_ctx" that contains the connection cache to the particular view and an instance of "struct sdap_options" that contains the URI. No functional changes are present in this patch, currently all providers use a single connection. Multiple connections will be used later in the upcoming patches.
2013-06-07Do not obfuscate calls with booleansJakub Hrozek4-31/+93
Instead of using boolean variables to denote whether the call is adding a primary or a secondary server, use a function wrapper that tells what it's doing by its name.
2013-06-06Always send the PAC to the PAC responderSumit Bose1-20/+18
Currently while doing a Kerberos based authentication the PAC was only send to the PAC responder for principals from a different realm. This reflects the FreeIPA use case of users from trusted domains. This restriction does not make sense anymore when the data from the PAC should be used for the AD provider as well. It also makes only limited sense for the IPA use case, because when using GSSAPI the PAC of users from the local IPA domain are already evaluated by the PAC responder.