我这边是这样配置的哈,用户登录的时候会先用 LDAP 进行效验,效验通过,如果本地没有该账号则自动创建,如果本地有该账号,则同步指定的用户字段信息
如果LDAP 效验不通过,则检查是否有本地的账号,使用本地账号密码进行效验
1. 首先安装 django-auth-ldap 模块:
pip install django-auth-ldap
2. 在 setting.py 中加入下面的语句
import ldap
from django_auth_ldap.config import LDAPSearch
AUTHENTICATION_BACKENDS = (
'django_auth_ldap.backend.LDAPBackend',
'django.contrib.auth.backends.ModelBackend',
)
AUTH_LDAP_SERVER_URI = 'ldap://192.168.0.1:389'
AUTH_LDAP_BIND_DN = "CN=sumin,CN=Users,DC=test,DC=com"
AUTH_LDAP_BIND_PASSWORD = "jiangling"
AUTH_LDAP_USER_SEARCH = LDAPSearch('CN=Users,DC=test,DC=com', ldap.SCOPE_SUBTREE, '(sAMAccountName=%(user)s)',)
AUTH_LDAP_USER_ATTR_MAP = {
"first_name": "givenName",
"last_name": "sn",
"email": "mail"
}
AUTH_LDAP_ALWAYS_UPDATE_USER = True