1

ユーザーが Active Directory に対して認証する必要がある Django ベースのイントラネット アプリに取り組んでいます。django-auth-ldapを見つけましたが、開発できるローカル LDAP サーバーをセットアップするために何をすべきかまだまったくわかりません。

AD LDS をインストールしましたが、ドメイン コントローラーが必要でした。私が読んだいくつかの SO の回答では、Windows 7 ではセットアップできないことがわかりました。そのため、代わりに OpenLDAP を試すことにしました。私が読んだのは、データをどのように追加するのかについて特に明確ではありませんでしたか?

OpenLDAP であれ Active Directory であれ、ローカルで実行されている LDAP サービスに対して Django ユーザー プロファイルを追加して正常に認証するには、どのような手順を踏む必要があるか説明してくれませんか?後で、それが可能であれば)?

4

1 に答える 1

1

あなたはすでにこれを解決しているかもしれませんが、念のために:

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 になります。ドキュメントに記載されているように、必要に応じてディレクトリ全体を検索できます。

何が起こっているのか明確でない場合:

  1. LDAP モジュールのインポート
  2. LDAPSEARCH 関数をインポートしますか? django モジュールから
  3. 空のバインド DN を設定します (これは完全修飾ユーザー名のようなものです。例: uid=myuser,dc=com)
  4. 空白のバインド パスワードを設定する
  5. 検索を実行します。次のようにフォーマットします: ("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 を渡すことができます。

ずっと前にこれを解決したとしても、頑張ってください。

于 2014-07-17T09:14:06.547 に答える