Extension:LDAP Authentication/Generic LDAP Configuration Examples

Single Domain Requiring Straight Binding Only
In this example we will be doing straight binds to the LDAP directory. This is not how typical LDAP authentication operates as it does not attempt a search first, see "Single Domain Requiring Search Before Binding."

Configuration
Our LDAP servers are "exampleldapserver.example.com" and "exampleldapserver2.example.com" ,and the domain is "exampledomain.example.com".

Our naming attribute for users is "uid", and all users are kept in "ou=people,dc=exampledomain,dc=example,dc=com".

(In LocalSettings.php)

Single Domain Requiring Search Before Binding
This is typically how LDAP authentication is performed. First, a search is performed for the identifier presented (username) and a DN is returned. This DN is then used with the password provided to attempt a bind against the LDAP server. This is useful in cases when the username does not match anything in the DN or users are stored in multiple OUs.

Configuration
Our LDAP servers are "exampleldapserver.example.com" and "exampleldapserver2.example.com", and the domain is "exampledomain.example.com".

Our naming attribute for users is "uid", some users are kept in "ou=accounting,ou=people,dc=exampledomain,dc=example,dc=com", and other users are kept in "ou=graphics,ou=people,dc=exampledomain,dc=example,dc=com".

(In LocalSettings.php)

Using a Proxy Agent
With this approach, if your server doesn't allow anonymous searching, you'll need to use a proxy agent.

In this example the proxy agent entry is at "cn=proxyagent,ou=people,dc=exampledomain,dc=example,dc=com".

Add the following options to your configuration:

(In LocalSettings.php)

Configuration
In this example, we have two different domains that are not part of a single-sign-on environment.

The AD domain is called "ADDOMAIN", and has servers named "exampleldapserver.example.com" and "exampleldapserver2.example.com". The generic LDAP domain is called "NonADDomain", has servers named "nonadserver.example.com", "nonadserver2.example.com", and "nonadserver3.example.com", and users are stored in "ou=people,dc=example,dc=com".

(In LocalSettings.php)