我想在Django中集成LDAP认证,但即使是认证也没有发生,即即使在Django管理面板中提供了正确的LDAP凭据和用户详细信息后,用户详细信息也没有存储在Django用户模型中。
这是我setttings.py在Django中的www.example.com文件
AUTH_LDAP_SERVER_URI = 'ldaps://xxxxxx:636'
AUTH_LDAP_BIND_DN = 'CN=xxxxx,OU=Service,OU=Accounts,OU=SF_SAP,DC=sf,DC=priv'
AUTH_LDAP_BIND_PASSWORD = 'xxxxxxxx'
AUTH_LDAP_USER_SEARCH = LDAPSearch('OU=User,OU=Accounts,OU=SF_SAP, DC=sf,DC=priv',ldap.SCOPE_SUBTREE, '(CN=%(user)s)')
AUTH_LDAP_USER_ATTR_MAP = {
"first_name": "givenName",
"last_name": "sn",
"email": "mail",
"username": "uid",
"password": "userPassword",
}
AUTH_LDAP_PROFILE_ATTR_MAP = {
"home_directory": "homeDirectory"
}
AUTH_LDAP_ALWAYS_UPDATE_USER = True
AUTH_LDAP_CACHE_TIMEOUT = 3600
AUTHENTICATION_BACKENDS = (
'django_auth_ldap.backend.LDAPBackend',
'django.contrib.auth.backends.ModelBackend',
)
有人能指出我漏掉了什么吗?
1条答案
按热度按时间vof42yt11#
搜索过滤器似乎是错误的:根据用户属性Map,
username
Map为uid
,如果正确,则搜索过滤器应为'(uid=%(user)s)'
:但也可能相反(没有用户dn示例很难知道):如果身份验证有效,但用户资源调配无效,则修复Map:
"username": "cn"
.您可能还需要再次检查您尝试验证的所有用户是否属于指定的子树
'OU=User,OU=Accounts,OU=SF_SAP, DC=sf,DC=priv'
。