【问题标题】:Django user authentication: django_auth_ldap.backend.LDAPBackendDjango 用户认证:django_auth_ldap.backend.LDAPBackend
【发布时间】:2012-09-10 22:31:53
【问题描述】:

我不明白如何在 django 中使用 LDAPBackend,我想做的只是针对 LDAP 对用户进行身份验证。我尝试了以下方法:

from django_auth_ldap.backend import LDAPBackend
auth = LDAPBackend()
user = auth.authenticate(username='my_uid',password='pwd')

此时用户为 None 并且查看 tcpdump 我看不到任何与 LDAP 服务器的连接尝试。

设置.py
AUTH_LDAP_SERVER_URI = 'ldap.example.com'
AUTH_LDAP_USER_DN_TEMPLATE = 'uid=%(user)s,ou=People,dc=example,dc=com'
AUTH_LDAP_BIND_AS_AUTHENTICATING_USER = True
AUTH_LDAP_CACHE_GROUPS = True
AUTH_LDAP_GROUP_CACHE_TIMEOUT = 3600
AUTH_LDAP_USER_ATTR_MAP = {
"first_name": "givenName",
"last_name": "sn",
"email": "mail"
}
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'django_auth_ldap.backend.LDAPBackend',
)

官方 django 文档没有提供任何关于如何在视图中使用此后端的 sn-p。

非常感谢您的帮助!

【问题讨论】:

  • 确实如此。官方的 django 文档非常有限。

标签: django django-authentication django-auth-ldap


【解决方案1】:

django-auth-ldap 的所有文档都是here。为了调试您的配置,您需要在 'django_auth_ldap' 记录器上安装一个日志处理程序;有关更多信息,请参阅Django's logging documentation

乍一看,我想说一个问题是AUTH_LDAP_SERVER_URI 没有设置为URI;试试ldap://ldap.example.com/ 形式的东西。您还需要查看 AUTH_LDAP_BIND_AS_AUTHENTICATING_USER 的文档:这是一个高级且有些微妙的选项,只有在您知道自己需要它时才应该启用它。

【讨论】:

  • 嗨 psagers,非常感谢您的帮助,在主机名前加上 ldap:// 前缀后,我开始看到 ldap 流量,这绝对是我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-05
  • 2012-05-05
  • 1970-01-01
相关资源
最近更新 更多