web-dev-qa-db-ja.com

mod_authnz_ldapは匿名ではなく認証ユーザーとしてバインドします

私はできる限り単一の資格情報に近づこうとしています。利用可能な認証メカニズムのかなり限定されたセットを持つWebアプリケーションがありますが、(幸運なことに)管理者がREMOTE_USERhttpdによって設定される環境変数。

匿名バインドまたは共有資格情報のどちらかを選択するのではなく、要求しているユーザーの資格情報を使用して認証するようにmod_authnz_ldapを構成する方法はありますか?

これは私が現在持っているものです:

    <Location />

       AuthzLDAPLogLevel debug
       AuthType Basic
       AuthBasicProvider ldap
       AuthName "Active Directory"
       AuthzLDAPAuthoritative off
       AuthLDAPBindDN CN=jad,DC=xxx,DC=com
       AuthLDAPBindPassword xxx
       AuthLDAPURL ldap://xxx.xxx.64.71/DC=xxx,DC=com?samaccountname?sub
       require valid-user

    </Location>

xxxのマーク編集。基本的に、上記はユーザーの認証に機能しますが、私のアカウントを使用してADにバインドします。 AuthLDAPBindDNおよびAuthLDAPBindPasswordをコメントアウトしようとすると、AD管理者が拒否するように構成した匿名バインドを実行しようとしているようです。

私の質問は、Apacheを構成して、匿名バインドまたは共有アカウントを使用する代わりに、認証ユーザーの資格情報を使用できるかどうかです(ADの担当者が設定したポリシーでは不可能です)。個人のアカウントを使用することも、解雇または退職する場合には明らかに理想的ではありません。

7
Bratchley

多分 AuthLDAPInitialBindAsUser (Apache 2.3.6)が役立ちます:

サーバーが匿名または
ハードコードされた認証情報ではなく、基本的な
認証ユーザー自身のユーザー名を使用して初期DNルックアップを行うかどうかを決定します

AuthLDAPInitialBindPattern と組み合わせると、次のようなことがうまくいく場合があります(テストされていません)。

 AuthType Basic 
 AuthBasicProvider ldap 
 AuthName "Active Directory" 
 AuthzLDAPAuthoritative off 
 AuthLDAPInitialBindAsUser on 
 AuthLDAPInitialBindPattern(。+)cn = $ 1、dc = com 
 AuthLDAPURL ldap://xxx.xxx.64.71/DC=xxx,DC=com?samaccountname?sub 
 require valid-user 
6
ckujau