5

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 doc は、ビューでこのバックエンドを使用する方法についてのスニペットを提供していません。

助けてくれて本当にありがとうございます!

4

1 に答える 1

1

django-auth-ldap のすべてのドキュメントはこちらにあります。'django_auth_ldap'構成をデバッグするには、ロガーにロギング ハンドラーをインストールする必要があります。詳細については、Django のログに関するドキュメントを参照してください。

一見すると、1 つの問題はAUTH_LDAP_SERVER_URIURI に設定されていないことです。の形を試してみてくださいldap://ldap.example.com/AUTH_LDAP_BIND_AS_AUTHENTICATING_USERのドキュメントも参照してください。これは高度でやや微妙なオプションであり、必要な場合にのみ有効にする必要があります。

于 2012-09-13T21:16:54.180 に答える