Djangoauthldap:LDAPS导致第一次登录尝试失败

2024-05-29 05:46:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经使用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
}

Tags: comauthforoudcldapactiveacme

热门问题