Как подключить LDAP-аутентификацию для Django?
В настоящее время я внедряю LDAP-аутентификацию в Django. Я создал виртуальную машину Windows Server VM и пинговал ее на моем основном ПК и наоборот, также использовал
ldapsearch -x -H ldap://192.168.0.136 -D "Administrator@statuspage.com" -W -b "DC=statuspage,DC=com"
и все работает как надо, однако когда я пытаюсь войти на страницу администратора django с помощью кода, приведенного в документации по ldap, это не работает, ни в оболочке python manage.py, ни на странице localhost/admin.
Я использовал STATUSPAGE\Administrator, Administrator@statuspage.com и только Administrator для имени пользователя, ни один не работает, вот код, который я использовал:
import ldap
from django_auth_ldap.config import LDAPSearch
import logging
logger = logging.getLogger('django_auth_ldap')
logger.addHandler(logging.StreamHandler())
logger.setLevel(logging.DEBUG)
AUTH_LDAP_SERVER_URI = "ldap://192.168.0.136"
AUTH_LDAP_BIND_DN = "dc=statuspage,dc=com"
AUTH_LDAP_BIND_PASSWORD = "my_password" #in the code I actually put the server password
AUTH_LDAP_USER_SEARCH = LDAPSearch(
"ou=Users,dc=statuspage,dc=com",
ldap.SCOPE_SUBTREE,
"(uid=%(user)s)"
)
AUTH_LDAP_USER_ATTR_MAP = {
"first_name": "givenName",
"last_name": "sn",
"email": "mail",
}
AUTH_LDAP_CACHE_GROUPS = True
AUTH_LDAP_GROUP_CACHE_TIMEOUT = 3600
AUTHENTICATION_BACKENDS = (
'django_auth_ldap.backend.LDAPBackend',
'django.contrib.auth.backends.ModelBackend',
)
Каждый раз, когда я вхожу в систему с пользователем shell, я получаю эту ошибку:
Caught LDAPError while authenticating STATUSPAGE\jdoe: INVALID_CREDENTIALS({'msgtype': 97, 'msgid': 1, 'result': 49, 'desc': 'Invalid credentials', 'ctrls': [], 'info': '80090308: LdapErr: DSID-0C090439, comment: AcceptSecurityContext error, data 57, v4563'})