LDAPサーバーに対してAuthType Basic
認証を行う場合、Apacheは最初にバインドしてユーザーのDNを検索し、次にそのDNにバインドしてユーザーのパスワードをテストします。課題は、ADでは通常匿名バインドを実行できないことです。したがって、AuthLDAPBindDN
を設定する必要があります。
しかし、私は言います、私はすでにDNを知っています! bind-search-bindする必要はなく、cn=_username_,OU=Employees,DC=megacorp,DC=com
としてバインドできます!
これは可能ではないようですが、私は質問したいと思いました。その場でDNを作成するだけで、バインドと検索でDNをバインドに使用することをスキップするように、Apacheを説得できますか。認証したいユーザーを検索するためにバインドできる特別なアカウントについて、地元の官僚に相談する必要がありますか?
ありがとう!
-ダニー
残念ながら、mod_auth_ldapは、指定したDNでバインドを試行するのではなく、検索を構築して実行することを要求しているようです。私の経験では、それは大多数です。 (たとえば、ネイティブNTユーザーAPIを使用するのではなく)LDAPを介してActive Directoryにアクセスするほとんどのアプリケーションは、単にバインドしようとするのではなく、検索してからバインドします。
プラス面(それと呼べる場合)では、LDAPツリーでパーミッションに関して多忙なことがない限り、いかなる種類の権限も持たないユーザーアカウントがニーズを満たすはずです。 Authenticated Usersのメンバーシップは、検索ユーザーが行う必要のあるすべてのことを実行するのに十分なはずです。ドメインユーザーから削除して、別のプライマリグループを割り当てることもできます。それは地方の官僚機構を少し和らげるはずです。
実際、Apache2.3のオプションはAuthLDAPInitialBindAsUserとAuthLDAPInitialBindPatternのようです。
AuthLDAPCompareAsUserとAuthLDAPSearchAsUserはある程度関連していますが、これらは有効になるだけのように聞こえますafter最初のバインドが行われました。
私は実際に試したことがありませんが(少なくともまだApache 2.3がインストールされていないため)、必要な構成は次のようになります。
AuthLDAPInitialBindAsUser on
AuthLDAPInitialBindPattern (.+) cn=$1,OU=Employees,DC=megacorp,DC=com
Apache 2.3.6以降はAuthLDAPCompareAsUserをサポートしており、おそらくこれを探しています。
http://httpd.Apache.org/docs/2.3/mod/mod_authnz_ldap.html#authldapcompareasuser
このブランチはベータ版であり、OSからまだ簡単にアクセスできない可能性があります。