| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- This is a Django authentication backend that authenticates against an LDAP
- service. Configuration can be as simple as a single distinguished name
- template, but there are many rich configuration options for working with users,
- groups, and permissions.
- This version is tested on Python 2.6 to 2.7, Django >= 1.3, and python-ldap
- 2.4.13.
- Full documentation can be found at http://pythonhosted.org/django-auth-ldap/;
- following is an example configuration, just to whet your appetite::
- import ldap
- from django_auth_ldap.config import LDAPSearch, GroupOfNamesType
- # Baseline configuration.
- AUTH_LDAP_SERVER_URI = "ldap://ldap.example.com"
- AUTH_LDAP_BIND_DN = "cn=django-agent,dc=example,dc=com"
- AUTH_LDAP_BIND_PASSWORD = "phlebotinum"
- AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=users,dc=example,dc=com",
- ldap.SCOPE_SUBTREE, "(uid=%(user)s)")
- # or perhaps:
- # AUTH_LDAP_USER_DN_TEMPLATE = "uid=%(user)s,ou=users,dc=example,dc=com"
- # Set up the basic group parameters.
- AUTH_LDAP_GROUP_SEARCH = LDAPSearch("ou=django,ou=groups,dc=example,dc=com",
- ldap.SCOPE_SUBTREE, "(objectClass=groupOfNames)"
- )
- AUTH_LDAP_GROUP_TYPE = GroupOfNamesType()
- # Simple group restrictions
- AUTH_LDAP_REQUIRE_GROUP = "cn=enabled,ou=django,ou=groups,dc=example,dc=com"
- AUTH_LDAP_DENY_GROUP = "cn=disabled,ou=django,ou=groups,dc=example,dc=com"
- # Populate the Django user from the LDAP directory.
- AUTH_LDAP_USER_ATTR_MAP = {
- "first_name": "givenName",
- "last_name": "sn",
- "email": "mail"
- }
- AUTH_LDAP_PROFILE_ATTR_MAP = {
- "employee_number": "employeeNumber"
- }
- AUTH_LDAP_USER_FLAGS_BY_GROUP = {
- "is_active": "cn=active,ou=django,ou=groups,dc=example,dc=com",
- "is_staff": "cn=staff,ou=django,ou=groups,dc=example,dc=com",
- "is_superuser": "cn=superuser,ou=django,ou=groups,dc=example,dc=com"
- }
- AUTH_LDAP_PROFILE_FLAGS_BY_GROUP = {
- "is_awesome": "cn=awesome,ou=django,ou=groups,dc=example,dc=com",
- }
- # Use LDAP group membership to calculate group permissions.
- AUTH_LDAP_FIND_GROUP_PERMS = True
- # Cache group memberships for an hour to minimize LDAP traffic
- AUTH_LDAP_CACHE_GROUPS = True
- AUTH_LDAP_GROUP_CACHE_TIMEOUT = 3600
- # Keep ModelBackend around for per-user permissions and maybe a local
- # superuser.
- AUTHENTICATION_BACKENDS = (
- 'django_auth_ldap.backend.LDAPBackend',
- 'django.contrib.auth.backends.ModelBackend',
- )
|