LDAP認証とサブディレクトリ

LDAP認証とサブディレクトリ

私の Apache サーバーは、サーバーのルートにアクセスするユーザーを認証するために LDAP を使用しています。

ウェブサイト上で既に認証されているユーザー グループ (サーバー上のファイルで定義) が特定のディレクトリ内のページにアクセスすることを許可/禁止するための別の認証 (プロンプトなし) を追加したいと思います。

Apache 構成ファイルでこれを実行するにはどうすればよいですか?

現在は次のようになっています:

NameVirtualHost *:443

<VirtualHost *:443>
    ServerName some.ip.address

    SSLEngine on
    SSLCertificateFile    /etc/ssl/certs/ssl-cert.pem
    SSLCertificateKeyFile /etc/ssl/private/ssl-cert.key

    <Directory /var/www/mywebsite>
        AllowOverride All
        Order deny,allow
        Deny from All

        AuthType Basic
        AuthName "LDAP Access - Mywebsite"
        AuthBasicProvider ldap
        AuthzLDAPAuthoritative on
        AuthLDAPURL "ldap://myldapserver:389/ou=mygroup,dc=mydc,dc=com?uid?sub?(objectClass=*)"

        AuthLDAPBindDN "uid=someuser,ou=apache,dc=mydc,dc=com"
        AuthLDAPBindPassword "mysuperpassword"
        Require valid-user
        Satisfy all
    </Directory>

    <Directory /var/www/mywebsite/directory>
        #What do I put in here ?
    </Directory>

</VirtualHost>

答え1

すべての有効なユーザー (認証されていないユーザーは除く) が Web サイトの大部分にアクセスできるようにし、一部の領域へのアクセスは少数のユーザーまたはグループのみに許可したい場合、次のような操作を行う必要があります。

<Directory /var/www/mywebsite>
   # Ldap authentication bits here as now
</Directory>
<Location /secure/>
   <RequireAll>
      Require group secure
      Require not group sales
   </RequireAll>
</Location>
<Location /secure/jim/>
   <RequireAll>
      Require user jim
   </RequireAll>
</Location>

あるいは、まだ Apache 2.2 を使用している場合は、代わりに次のような方法があります。

<Directory /var/www/mywebsite>
   # Ldap authentication bits here as now
</Directory>
<Location /secure/>
   Require ldap-group cn=secure
   # Negative matching not possible with 2.2
</Location>
<Location /secure/jim/>
   Require ldap-user jim
</Location>

この設定では、すべての有効なユーザーが/現在と同じように、サイトのほとんどの部分にアクセスできました。その後、2.4では、LDAPグループに属しているsecureないLDAP グループ内のユーザーsalesは、その下にあるものにアクセスできるようになります/secure/(2.2 では、secureグループ内のユーザーのみアクセス可能)。ユーザーには再認証が求められず、ユーザー名/グループがチェックされた状態で既存の認証が再利用されます。最終的に、その下にあるものは、/secure/jim/jim にのみ表示されます。

さまざまなrequireオプションに関するドキュメントを参照できます。Apache HTTPD 2.4ドキュメントのmod_authz_core / RequireApache 2.2の場合は、mod_authnz_ldap の Apache HTTPD 2.2 ドキュメント

関連情報