Аутентификация LDAP в виде открытого текста - PullRequest
0 голосов
/ 16 мая 2018

Я создал сайт с использованием 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',
]
...