Я создал сайт с использованием django и недавно добавил аутентификацию ldap, указывающую на наш активный каталог в LDAP tcp / 389.Проблема в том, что django auth-ldap отправляет эти данные пароля ldap в виде открытого текста, и AD, с которой я пытаюсь аутентифицироваться, не настроен для LDAP tcp / 636 (я не могу это контролировать), поэтому я не могу использоватькоманда AUTH_LDAP_START_TLS = True
Пожалуйста, посмотрите мой сценарий ниже, есть ли какие-либо улучшения / сценарии, которые я могу легко добавить, чтобы продолжить использовать ldap / 389, но с добавленной безопасностью (например, Kerberos или ntlm?), чтобы остановить отправку паролей в виде открытого текста-
from django_auth_ldap.config import LDAPSearch, GroupOfNamesType,LDAPGroupQuery
AUTH_LDAP_GLOBAL_OPTIONS = {
ldap.OPT_X_TLS_REQUIRE_CERT: False,
ldap.OPT_REFERRALS: False,
}
AUTH_LDAP_SERVER_URI = "ldap://x.x.x.x"
AUTH_LDAP_BIND_DN = "CN=xxx,OU=xxx,OU=xxx,OU=xxxx,OU=xxxx,OU=xxxx,DC=xxx,DC=xxx,DC=xxx"
AUTH_LDAP_BIND_PASSWORD = credentials.adlogin['pass']
AUTH_LDAP_USER_SEARCH = LDAPSearch("OU=xxx,DC=xxx,DC=xxx,DC=coxxm",
ldap.SCOPE_SUBTREE, "(sAMAccountName=%(user)s)")
AUTH_LDAP_GROUP_SEARCH = LDAPSearch("ou=groups,dc=example,dc=com",
ldap.SCOPE_SUBTREE, "(objectClass=groupOfNames)"
)
AUTH_LDAP_GROUP_TYPE = GroupOfNamesType()
AUTH_LDAP_REQUIRE_GROUP = (
(
LDAPGroupQuery("CN=xx-xx,OU=xx,OU=xxx,,DC=xx,DC=xxx,DC=xx") |
LDAPGroupQuery("CN=xx-xx,OU=xx,OU=xxx,,DC=xx,DC=xxx,DC=xx")
)
)
AUTH_LDAP_USER_ATTR_MAP = {
"first_name": "givenName",
"last_name": "sn",
"email": "mail"
}
SESSION_COOKIE_AGE = 15*60
AUTHENTICATION_BACKENDS = [
'django_auth_ldap.backend.LDAPBackend',
'django.contrib.auth.backends.ModelBackend',
]