我已经使用ldap
协议(未加密)配置了django-auth-ldap
以针对Active Directory实例进行身份验证,并且它可以工作。问题是当我尝试通过ldaps
连接时,第一次身份验证尝试总是失败,但第二次成功。错误消息如下:
"Please enter a correct username and password. Note that both fields may be case-sensitive."
STARTTLS似乎不适合这个服务器(至少,我还没有让它工作),所以我不得不使用ldaps
下面是我的settings.py
中的相关片段。我希望有人能对这个问题有所了解,或者就我如何进一步调查这个问题提出建议。我无法访问实际的Active Directory服务器,因此很遗憾,我无法访问任何服务器端日志
AUTH_LDAP_SERVER_URI = 'ldaps://ldap.internal.acme.com' # modified for ldaps
AUTH_LDAP_BIND_DN = 'CN=service1,OU=Service Accounts,DC=internal,DC=acme,DC=com'
AUTH_LDAP_BIND_PASSWORD = r'***'
# If STARTTLS is False, then the ldaps protocol will be used.
AUTH_LDAP_START_TLS = False # added for ldaps
AUTH_LDAP_USER_SEARCH = LDAPSearchUnion(
LDAPSearch(
'OU=UserAccounts,DC=internal,DC=acme,DC=com',
ldap.SCOPE_SUBTREE,
'(sAMAccountName=%(user)s)',
),
LDAPSearch(
'OU=Service Accounts,DC=internal,DC=acme,DC=com',
ldap.SCOPE_SUBTREE,
'(sAMAccountName=%(user)s)',
),
)
AUTH_LDAP_GROUP_SEARCH = LDAPSearch(
'OU=Groups,DC=internal,DC=acme,DC=com',
ldap.SCOPE_SUBTREE,
'(objectClass=group)',
)
AUTH_LDAP_GROUP_TYPE = NestedActiveDirectoryGroupType()
AUTH_LDAP_USER_ATTR_MAP = {
'username' : 'sAMAccountName',
'first_name' : 'givenName',
'last_name' : 'sn',
'email' : 'mail',
}
AUTH_LDAP_CONNECTION_OPTIONS = {
ldap.OPT_DEBUG_LEVEL: 1,
ldap.OPT_X_TLS_CACERTFILE: '/www/certs/cert.pem', # added for ldaps
}
目前没有回答
相关问题 更多 >
编程相关推荐