-
#设置后端认证函数,先进行ldap认证 后进行数据库认证
-
authentication_backends = [
-
'django_auth_ldap.backend.ldapbackend', # ldap认证
-
'django.contrib.auth.backends.modelbackend', # 数据库用户认证
-
]
-
#ldap的连接基础配置
auth_ldap_server_uri = "ldap://xxx.xxx.xxx.xxx:389" # ldap or ad 服务器地址
auth_ldap_bind_dn = "cn=administrator,cn=users,dc=test,dc=com" # 管理员的dn路径
auth_ldap_bind_password = 'testpassword' # 管理员密码
#搜索的域
auth_ldap_user_search = ldapsearch(
'ou=users,dc=example,dc=com',
ldap.scope_subtree,
'(uid=%(user)s)',
)
#如果有多个域
auth_ldap_user_search = ldapsearchunion(
ldapsearch(
'ou=users,dc=example,dc=com',
ldap.scope_subtree,
'(uid=%(user)s)'),
ldapsearch(
'ou=admin,dc=example,dc=com',
ldap.scope_subtree,
'(uid=%(user)s)',
)
#django数据跟ldap字段对应关系,key为django字段,value为ldap字段
auth_ldap_user_attr_map = { 'first_name': 'cn', 'last_name': 'sn', 'email': 'mail',}
#是否同步ldap的修改,当ldap属性修改后当通过ldap认证会自动同步到django的user表中
auth_ldap_always_update_user = true
auth_ldap_cache_timeout = 100 #ldap缓存时间
auth_ldap_deny_group = 'cn=kerrigan,ou=group,dc=ops-coffee,dc=cn' #拒绝这个组下的成员登录
# 设置额外属性,以下设置为 admin组内的成员登录自动在django设置超级管理员权限,在user表设置
is_superuser为true
auth_ldap_user_flags_by_group = {
'is_superuser': 'cn=admin,ou=group,dc=ops-coffee,dc=cn',
}