あなたはすでにこれを解決しているかもしれませんが、念のために:
LDAP リポジトリをセットアップする必要があります (完了)。バインドできるいくつかのユーザー オブジェクトを作成する必要があります。これは、LDIF ファイルまたは同様の方法を使用して実現されます。LDAP データベースを視覚化するための非常に便利なツールは、「Apache Directory Studio」です。ldif がどのように表示されるかの例:
dn:cn=myuser,cn=localhost
changetype: modify
add: cn=myuser
userPassword: password01
スキーマによって異なります。あなたに固有の実装については、Django ドキュメントを読むことを強くお勧めします: https://pythonhosted.org/django-auth-ldap/
これは良い例です(ドキュメントから):
import ldap
from django_auth_ldap.config import LDAPSearch
AUTH_LDAP_BIND_DN = ""
AUTH_LDAP_BIND_PASSWORD = ""
AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=users,dc=example,dc=com",
ldap.SCOPE_SUBTREE, "(uid=%(user)s)")
ただし、ldif を介して "cn=localhost" にユーザーを追加したと仮定すると、それが検索フィールドで使用する dn になります。ドキュメントに記載されているように、必要に応じてディレクトリ全体を検索できます。
何が起こっているのか明確でない場合:
- LDAP モジュールのインポート
- LDAPSEARCH 関数をインポートしますか? django モジュールから
- 空のバインド DN を設定します (これは完全修飾ユーザー名のようなものです。例: uid=myuser,dc=com)
- 空白のバインド パスワードを設定する
- 検索を実行します。次のようにフォーマットします: ("base",scope,searchfilter)
Python で標準の ldap モジュールを使用してテストできます。
import ldap
ld = ldap.initialize("ldaps://acme.com:636")
ld.bind_s("userDN","Password")
ld.search_s("cn=acme.com",ldap.SCOPE_SUBTREE,"uid=myuser")
それほど重要ではありませんが、「ldap.SCOPE_SUBTREE」、「ldap.SCOPE_BASE」などは単なる整数です。したがって、代わりに 0、1、2 を渡すことができます。
ずっと前にこれを解決したとしても、頑張ってください。