リクエスト文字列に基づいてLDAPでApacheを動的に認証しますか?


11

mod_authnz_ldapのRequire ldap-groupディレクティブへの入力としてリクエストURIの一部を使用することは可能ですか?

すべてのhttp://testserver.com/projects/の下にあるさまざまなプロジェクトディレクトリへのアクセスを動的にチェックして、アクセスしているユーザー/projects/abcがのメンバーシップをチェックされるようにしていますcn=abc,ou=groups,dc=test。理想的には、プロジェクトごとに個別のLocationディレクティブを作成せずにこれを実行したいと考えています。何百ものプロジェクトが存在する可能性があるためです。

私はこれを思いつきましたが、これは一般的な概念を示していますが、機能しません(project_nameは実際の変数の内容を取得しません)。

<Location /projects>
    SetEnvIf Request_URI "/projects/([-a-z0-9A-Z_]+)/" project_name=$1

    AuthType Basic
    AuthBasicProvider ldap
    AuthName "Restricted Resource - SVN (LDAP)"
    AuthLDAPURL "ldap://127.0.0.1:389/dc=test?uid"
    AuthLDAPGroupAttributeIsDN off
    AuthLDAPGroupAttribute memberUid
    Require ldap-group cn=%{project_name},ou=groups,dc=test
</Location>

助けて?


ありえない。あなたの最善の策は、mod_auth_externalのようなものを試すことです。
h0tw1r3 11/07/23

回答:


0

私は、Apache 2.4がこの領域で提供するものは2.2よりも多いと思います...見る価値があります。

または、独自のカスタムモジュールを作成することも検討する価値があります。あなたがCに慣れていると仮定すると、それは見た目ほど怖くはありません。

同様に、mod_perlは、Apacheをフック経由で拡張することを多く提供していませんか?


0

AuthLDAPURLパラメーターにフィルターを追加することができます:https ://httpd.apache.org/docs/2.4/en/mod/mod_authnz_ldap.html#authldapurl

たぶん何かのような:

AuthLDAPURL "ldap://127.0.0.1:389/dc=test?uid?sub?(memberof=cn=%{project_name},ou=groups,dc=test)"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.