path: root/src/providers/ad
Commit message (Collapse)AuthorAgeFilesLines
* IPA: Look up AD users directly if IPA server mode is onJakub Hrozek2013-06-282-2/+13
| | | | | | | | If the ipa_server_mode is selected IPA subdomain user and group lookups are not done with the help of the extdom plugin but directly against AD using the AD ID code.
* AD: Move storing sdap_domain for subdomain to generic LDAP codeJakub Hrozek2013-06-281-65/+1
| | | | | | | | Makes creating the sdap_domain structure for a subdomain reusable outside AD subdomain code where it was created initially. Subtask of:
* AD: initialize failover with custom realm, domain and failover serviceJakub Hrozek2013-06-283-28/+41
| | | | | | | | | | This is needed so we can initialize failover using IPA realm and on-the-fly discovered DNS domain. The subdomains discovered on-thefly will use the subdomain name for realm, domain and failover service to avoid conflicts. Subtaks of:
* AD: decouple ad_id_ctx initializationJakub Hrozek2013-06-283-102/+285
| | | | | | | | | The IPA subdomain code will perform lookups on its own in the server mode. For this, the AD provider must offer a way to initialize the ad_id_ctx for external consumers. Subtask of:
* Save mpg state for subdomainsSumit Bose2013-06-281-1/+3
| | | | | | The information of a subdomain will use magic private groups (mpg) or not will be stored together with other information about the domain in the cache.
* Replace new_subdomain() with find_subdomain_by_name()Sumit Bose2013-06-281-3/+2
| | | | | | new_subdomain() will create a new domain object and should not be used anymore in the priovder code directly. Instead a reference to the domain from the common domain object should be used.
* Add now options ldap_min_id and ldap_max_idSumit Bose2013-06-281-0/+2
| | | | | | | Currently the range for Posix IDs stored in an LDAP server is unbound. This might lead to conflicts in a setup with AD and trusts when the configured domain uses IDs from LDAP. With the two noe options this conflict can be avoided.
* AD: Write out domain-realm mappingsJakub Hrozek2013-06-271-0/+7
| | | | | This patch reuses the code from IPA provider to make sure that domain-realm mappings are written even for AD sub domains.
* AD: kinit with the local DC even when talking to a GCJakub Hrozek2013-06-262-4/+21
| | | | | | | | We tried to use the GC address even for kinit which gave us errors like: "Realm not local to KDC while getting initial credentials". This patch adds a new AD_GC service that is only used for ID lookups, any sort of Kerberos operations are done against the local servers.
* Use forest for GC SRV lookupsSumit Bose2013-06-261-12/+40
| | | |
* handle ERR_ACCOUNT_EXPIRED properlyPavel Březina2013-06-171-0/+4
| | | |
* Fix allocation checkJakub Hrozek2013-06-171-1/+1
* AD: Remove ad_options->auth options referenceJakub Hrozek2013-06-141-1/+0
| | | | | The options are stored in ad_options->auth_ctx->opts, this member was completely unused and confusing.
* AD: Fix segfault in DEBUG messageJakub Hrozek2013-06-141-1/+1
* Use the correct talloc context when creating AD subdomainsJakub Hrozek2013-06-121-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.
* Fix allocation check in the AD providerJakub Hrozek2013-06-111-1/+1
| | | |
* A new option krb5_use_kdcinfoJakub Hrozek2013-06-102-14/+27
| | | | | | | | | | 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
* providers: refresh expired netgroupsPavel Březina2013-06-101-0/+10
| | | |
* AD: Store trusted AD domains as subdomainsJakub Hrozek2013-06-071-2/+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.
* AD ID lookups - choose GC or LDAP as appropriateJakub Hrozek2013-06-071-1/+262
| | | | | | | | | | | | | 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.
* AD: Add additional service to support Global Catalog lookupsJakub Hrozek2013-06-073-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.
* LDAP: new SDAP domain structureJakub Hrozek2013-06-072-6/+15
| | | | | | | | | | | 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.
* LDAP: Pass in a connection to ID functionsJakub Hrozek2013-06-071-1/+1
| | | | | | | 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.
* LDAP: sdap_id_ctx might contain several connectionsJakub Hrozek2013-06-072-27/+22
| | | | | | | | | | | | | | | | | | | 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.
* Do not obfuscate calls with booleansJakub Hrozek2013-06-071-7/+21
| | | | | | 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.
* AD dyndns: extract the host name from URIJakub Hrozek2013-05-281-9/+31
* Fix dyndns timer initializationJakub Hrozek2013-05-272-2/+9
| | | | | | | The dyndns init function was starting the timer even if the updates were set to False. This patch splits the init of dynamic updates and the timer into two functions so that the back end can start the updates separately from reading the options.
* Adding option to disable retrieving large AD groups.Lukas Slebodnik2013-05-231-0/+1
| | | | | | | | | This commit adds new option ldap_disable_range_retrieval with default value FALSE. If this option is enabled, large groups(>1500) will not be retrieved and behaviour will be similar like was before commit ae8d047122c "LDAP: Handle very large Active Directory groups"
* Fix return code for AD subdomain requestSumit Bose2013-05-221-1/+3
* Remove unneeded parameter of setup_child and namespace itJakub Hrozek2013-05-201-1/+1
| | | | | setup_child() was accepting a parameter it didn't use. Also the function name was too generic, so I added a sdap prefix.
* Fix segfault in AD Subdomains ModuleLukas Slebodnik2013-05-151-0/+2
| | | | | | In function ad_subdomains_get_netlogon_done: If variable "reply_count" is zero then variable "reply" will not be initialized. Therefore we should not continue.
* Enable the AD dynamic DNS updates by defaultJakub Hrozek2013-05-131-1/+1
| | | |
* AD: read flat name and SID of the AD domainSumit Bose2013-05-073-0/+590
| | | | | | | | | | | | | | | For various features either the flat/short/NetBIOS domain name or the domain SID is needed. Since the responders already try to do a subdomain lookup when and known domain name is encountered I added a subdomain lookup to the AD provider which currently only reads the SID from the base DN and the NetBIOS name from a reply of a LDAP ping. The results are written to the cache to have them available even if SSSD is started in offline mode. Looking up trusted domains can be added later. Since all the needed responder code is already available from the corresponding work for the IPA provider this patch fixes
* AD: Always initialize ID mappingJakub Hrozek2013-05-031-5/+3
| | | | | | Because we now always store SIDs in the LDAP provider, we also need to always initialize the ID mapping context even if ID mapping itself is off.
* Active Directory dynamic DNS updatesJakub Hrozek2013-05-035-0/+306
| | | | | | | | Implements dynamic DNS updates for the AD provider. By default, the updates also update the reverse zone and run periodically every 24 hours.
* AD SRV plugin: check if site name is emptyPavel Březina2013-05-031-2/+4
* DNS sites support - add AD SRV pluginPavel Březina2013-05-025-5/+849
| | | |
* Allow usage of enterprise principalsSumit Bose2013-04-221-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Enterprise principals are currently most useful for the AD provider and hence enabled here by default while for the other Kerberos based authentication providers they are disabled by default. If additional UPN suffixes are configured for the AD domain the user principal stored in the AD LDAP server might not contain the real Kerberos realm of the AD domain but one of the additional suffixes which might be completely randomly chooses, e.g. are not related to any existing DNS domain. This make it hard for a client to figure out the right KDC to send requests to. To get around this enterprise principals (see for details) were introduced. Basically a default realm is added to the principal so that the Kerberos client libraries at least know where to send the request to. It is not in the responsibility of the KDC to either handle the request itself, return a client referral if he thinks a different KDC can handle the request or return and error. This feature is also use to allow authentication in AD environments with cross forest trusts. Fixes
* DNS sites support - use SRV DNS lookup plugin in all providersPavel Březina2013-04-101-0/+10
| | | | | | | | | | | | | We set a plugin during an initialization of ID provider, which is an authoritative provider for a plugin choice. The plugin is set only once. When other provider is initalized (e.g. id = IPA, sudo = LDAP), we do not overwrite the plugin. Since sssm_*_id_init() is called from all module constructors, this patch relies on the fact, that ID provider is initialized before all other providers.
* Allow setting krb5_renew_interval with a delimiterAriel Barria2013-04-031-1/+1
| | | | | | | changed the data type the krb5_renew_interval to string. function krb5_string_to_deltat is used to convert and allow delimiters
* ldap: Fallback option for rfc2307 schemaSimo Sorce2013-03-201-0/+1
| | | | | | | | | | | Add option to fallback to fetch local users if rfc2307is being used. This is useful for cases where people added local users as LDAP members and rely on these group memberships to be maintained on the local host. Disabled by default as it violates identity domain separation. Ticket:
* Convert sdap_access to new error codesSimo Sorce2013-03-191-17/+15
| | | | Also simplify sdap_access_send to avoid completely fake _send() routines.
* Decrease krb5_auth_timeout defaultOndrej Kos2013-03-181-1/+1
| | | |
* Add realm info to sss_domain_infoSimo Sorce2013-02-101-1/+1
* Add be_req_get_data() helper funciton.Simo Sorce2013-01-211-3/+4
| | | | In preparation for making struct be_req opaque.
* Add be_req_get_be_ctx() helper.Simo Sorce2013-01-212-14/+14
| | | | In preparation for making be_req opaque
* Introduce be_req_terminate() helperSimo Sorce2013-01-211-5/+6
| | | | | Call it everywhere instead of directly dereferencing be_req->fn This is in preparation of making be_req opaque.
* Pass domain not be_req to access check functionsSimo Sorce2013-01-211-4/+7
* Remove sysdb as a be request structure memberSimo Sorce2013-01-211-1/+0
| | | | The sysdb context is already available through the 'domain' context.
* failover: Protect against empty host namesMichal Zidek2013-01-021-1/+1
| | | | | | | | | | Added new parameter to split_on_separator that allows to skip empty values. The whole function was rewritten. Unit test case was added to check the new implementation.