1. ホーム
  2. authentication

[解決済み] LDAPサーバをベースDNとする。

2022-03-03 16:01:18

質問

こんにちは、私はopencaでユーザーを認証するために、私のLDAPテストサーバーを使用しようとしています。

現在、phpldapadminで.NETを使用して接続しています。

<ブロッククオート

ログインDN : cn=admin,dc=example,dc=com
パスワード:mypass

しかし、opencaでは何かが間違っているようです。datasources.xmlにldapコンフィギュレーションの設定があり、それは以下のように要求しています。

<name>basedn</name>

どれをベースにすればいいのでしょうか?私はすでに

cn=admin,dc=example,dc=com

そして

dc=example,dc=com

LDAP Admin Explorerでldapに接続することもできます。

ありがとうございます。

解決方法は?

ベースとなるdnは dc=example,dc=com .

opencaはわかりませんが、今までのアクセス数が少ないので、この回答でやってみます。

ベースDNは、サーバーがユーザーを検索するポイントです。ですから、私なら単純に admin をログイン名として使用します。

もしopencaが多くのLDAPを意識したアプリケーションと同じように動作するならば、このようなことが起こるでしょう。

  1. ユーザーの ldap 検索 admin は、サーバーがベース DN ( dc=example,dc=com ).
  2. ユーザが見つかると、完全なdn( cn=admin,dc=example,dc=com )は、与えられたパスワードとバインドするために使用されます。
  3. ldapサーバーはパスワードをハッシュ化し、保存されているハッシュ値と比較します。一致した場合、参加できます。

ステップ1を正しく行うことが最も難しい部分ですが、その理由のほとんどは、この作業を行う機会があまりないためです。設定ファイルで気をつけなければならないことは、以下の通りです。

  • dn アプリケーションが ldap サーバーにバインドするために使用します。これはアプリケーションの起動時、ユーザーが認証に来る前に行われます。あなたは完全なdnを提供しなければなりません。 cn=admin,dc=example,dc=com .
  • 認証方法です。通常は "シンプルバインド"です。
  • ユーザー検索フィルター。という名前の属性を見てください。 objectClass を使用します。 admin ユーザを指定します。これは次のどちらかになります。 inetOrgPerson または user . のようなものもあります。 top 無視してもかまいません。opencaの設定に、以下のような文字列があるはずです。 (objectClass=inetOrgPerson) . それが何であれ、管理者ユーザーのオブジェクト・クラスと一致することを確認してください。この検索フィルターで、2つのオブジェクト・クラスを指定することができます。 (|(objectClass=inetOrgPerson)(objectClass=user)) .

以下のようなLDAPブラウザをダウンロードします。 ApacheのDirectory Studio . アプリケーションの認証情報を使って接続し、アプリケーションが見ているものを見ることができます。