0

我使用 django 创建了一个网站,最近添加了指向我们在 LDAP tcp/389 上的活动目录的 ldap 身份验证。问题是 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',
]
4

0 回答 0