Webdav+Ldapで複数グループのみアクセスを許可する方法

昨日の記事の発展版です。 複数のグループからのアクセスを許可する場合は、 まずLDAP側でグループへの参加の仕方を変更する必要があります。

ldap-attributeでの指定ではユーザーのgidNumberしか参照しないので、 グループオブジェクト側にmemberUidの属性を追加します。

注意点として、ユーザー側でgidNumberが指定されていようが グループオブジェクトの子オブジェクトとしてユーザーを作成していようが グループオブジェクト側のmemberUidが指定されていないとグループメンバーとして 認識されません。

memberUidを指定したらApache側で下記の設定を書きます。

<Location "/webdav">
       Options Indexes MultiViews FollowSymLinks
       DAV On
       SSLRequireSSL
       Order deny,allow
       Deny from All
       AuthName "LDAP Auth"
       AuthType Basic
       AuthBasicProvider ldap
       AuthzLDAPAuthoritative On
       AuthLDAPURL ldap://localhost/dc=yourdomain,dc=com?uid
       AuthLDAPGroupAttribute memberUid
       AuthLDAPGroupAttributeIsDN off

       Require ldap-group cn=group1,c=yourdomain,dc=com
       Require ldap-group cn=group2,c=yourdomain,dc=com
</Location>

これでgroup1, group2のいずれかにmemberUidが登録されているユーザーのみディレクトリにアクセスできるようになります。