web-dev-qa-db-ja.com

Apache LDAP認証:最初にDNを検索せずにユーザーをバインドできますか?

LDAPサーバーに対してAuthType Basic認証を行う場合、Apacheは最初にバインドしてユーザーのDNを検索し、次にそのDNにバインドしてユーザーのパスワードをテストします。課題は、ADでは通常匿名バインドを実行できないことです。したがって、AuthLDAPBindDNを設定する必要があります。

しかし、私は言います、私はすでにDNを知っています! bind-search-bindする必要はなく、cn=_username_,OU=Employees,DC=megacorp,DC=comとしてバインドできます!

これは可能ではないようですが、私は質問したいと思いました。その場でDNを作成するだけで、バインドと検索でDNをバインドに使用することをスキップするように、Apacheを説得できますか。認証したいユーザーを検索するためにバインドできる特別なアカウントについて、地元の官僚に相談する必要がありますか?

ありがとう!

-ダニー

2
dannyman

残念ながら、mod_auth_ldapは、指定したDNでバインドを試行するのではなく、検索を構築して実行することを要求しているようです。私の経験では、それは大多数です。 (たとえば、ネイティブNTユーザーAPIを使用するのではなく)LDAPを介してActive Directoryにアクセスするほとんどのアプリケーションは、単にバインドしようとするのではなく、検索してからバインドします。

プラス面(それと呼べる場合)では、LDAPツリーでパーミッションに関して多忙なことがない限り、いかなる種類の権限も持たないユーザーアカウントがニーズを満たすはずです。 Authenticated Usersのメンバーシップは、検索ユーザーが行う必要のあるすべてのことを実行するのに十分なはずです。ドメインユーザーから削除して、別のプライマリグループを割り当てることもできます。それは地方の官僚機構を少し和らげるはずです。

1
Shane Madden

実際、Apache2.3のオプションはAuthLDAPInitialBindAsUserとAuthLDAPInitialBindPatternのようです。

AuthLDAPCompareAsUserとAuthLDAPSearchAsUserはある程度関連していますが、これらは有効になるだけのように聞こえますafter最初のバインドが行われました。

私は実際に試したことがありませんが(少なくともまだApache 2.3がインストールされていないため)、必要な構成は次のようになります。

AuthLDAPInitialBindAsUser  on
AuthLDAPInitialBindPattern (.+) cn=$1,OU=Employees,DC=megacorp,DC=com
2
Eric

Apache 2.3.6以降はAuthLDAPCompareAsUserをサポートしており、おそらくこれを探しています。

http://httpd.Apache.org/docs/2.3/mod/mod_authnz_ldap.html#authldapcompareasuser

このブランチはベータ版であり、OSからまだ簡単にアクセスできない可能性があります。

1
Fedor