Skip to main content

Django LDAP authentication backend

Project description

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 supported on Python 2.7, 3.3, 3.4, 3.5, and 3.6; and Django >= 1.5. Under Python 2, it requires python-ldap >= 2.0; under Python 3, it uses pyldap.

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_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"
}

# 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',
)

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-auth-ldap-1.2.16.tar.gz (54.2 kB view details)

Uploaded Source

Built Distributions

django_auth_ldap-1.2.16-py3-none-any.whl (30.3 kB view details)

Uploaded Python 3

django_auth_ldap-1.2.16-py2-none-any.whl (30.3 kB view details)

Uploaded Python 2

File details

Details for the file django-auth-ldap-1.2.16.tar.gz.

File metadata

File hashes

Hashes for django-auth-ldap-1.2.16.tar.gz
Algorithm Hash digest
SHA256 fbd632f2dee47e6f55f5c5aa0b82c96cc605b2151ed6a3fe33bd793dfa4d68bc
MD5 47be32090d81b22871c6c4f8fe8b3bf5
BLAKE2b-256 97aedd730cf57ce85413c2e242ea7a6df76ddf00cffde561a567028098ba874f

See more details on using hashes here.

File details

Details for the file django_auth_ldap-1.2.16-py3-none-any.whl.

File metadata

File hashes

Hashes for django_auth_ldap-1.2.16-py3-none-any.whl
Algorithm Hash digest
SHA256 a915064bc96bd837ac99cd83a672a6780c0321143deb69e3be16a579998a3d7c
MD5 29e15d1b26908a199512be4bfb083e48
BLAKE2b-256 f4b23bde53a2aaca8180a264212819d7bb977a5387bb8c8ba3bdf38c1e4b13d4

See more details on using hashes here.

File details

Details for the file django_auth_ldap-1.2.16-py2-none-any.whl.

File metadata

File hashes

Hashes for django_auth_ldap-1.2.16-py2-none-any.whl
Algorithm Hash digest
SHA256 a47bb2272c43a888ef881638f79e7c0b2678ccc6564b7e16ff9412b1d9700bce
MD5 6e56f9ec18cce59414514789a55c5d4b
BLAKE2b-256 d0f3d53928ef250f4337a3161d118e90a1f4b9a0284ede875f0a1f96161768e0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page