2012-09-10 32 views
5

djangoでLDAPBackendを使用する方法がわかりません。LDAPに対してユーザーを認証するだけです。私は以下を試しました:Djangoユーザー認証:django_auth_ldap.backend.LDAPBackend

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

この時点で、ユーザーはNoneであり、tcpdumpを見てもLDAPサーバーへの接続が試されません。

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

ご協力いただきありがとうございます。

+0

これは本当です。公式のdjangoのドキュメントは非常に限られています。 – shailenTJ

答えて

1

django-auth-ldapに関するすべてのドキュメントはhereです。設定をデバッグするには、ログハンドラを'django_auth_ldap'ロガーにインストールする必要があります。詳しくはDjango's logging documentationを参照してください。

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

+0

こんにちはpsagers、あなたの助けを大変ありがとう、ホスト名の前にldap://私はldapトラフィックを見始めた、それは間違いなく私の問題でした。 – Cosmix