2013年9月19日木曜日

WebDAVの認証をLDAPにしてグループ毎にアクセス制限する

スズキです。

LDAPの登録データは次の構成を前提にしています。(下記のような"phpLDAPadmin"を利用)
"phpLDAPadmin"でユーザーを作ったユーザーでCentOSにログイン

WebDAVの認証で上記を利用するのですが、"admin"ディレクトリには
"admin"グループに属するユーザーのみ利用でき、"dev"ディレクトリには
"dev"グループに属するユーザーのみが利用できるようにしてみます。

ちなみに、"hsuzuki(Hiroyasu Suzuki)"は"admin/dev"の両グループに所属し、
"tsuzuki(Takamichi Suzuki)"は"dev"のグループのみに所属しています。

WebDAV(Apache)の設定は下記の通りです。
# cat /etc/httpd/conf/httpd.conf
...
<Location /admin>
    DAV                        On
    AuthType                   Basic
    AuthName                   "WebDAV Server"
    AuthBasicProvider          ldap
    AuthLDAPGroupAttributeIsDN off
    AuthLDAPGroupAttribute     memberUid
    AuthLDAPURL                ldap://localhost/ou=user,dc=suz-lab,dc=com?uid
    AuthzLDAPAuthoritative     on
    require ldap-group         cn=admin,ou=group,dc=suz-lab,dc=com
</Location>

<Location /dev>
    DAV                        On
    AuthType                   Basic
    AuthName                   "WebDAV Server"
    AuthBasicProvider          ldap
    AuthLDAPGroupAttributeIsDN off
    AuthLDAPGroupAttribute     memberUid
    AuthLDAPURL                ldap://localhost/ou=user,dc=suz-lab,dc=com?uid
    AuthzLDAPAuthoritative     on
    require ldap-group         cn=dev,ou=group,dc=suz-lab,dc=com
</Location>

MacのFinderからアクセスしてみます。



"hsuzuki"は"admin"グループに所属しているので、無事アクセスできます。
当然、同様に"/dev/"にもアクセスできます。
反対に"tsuzuki"は"/dev/"にはアクセスできますが、"/admin/"にはアクセスできません。

ちなみにWebDAVでアップロードしたファイルのオーナーは、
どのユーザーでも"apache"になります。
# ll */*
-rw-r--r-- 1 apache apache   32  9月  9 21:57 2013 admin/error.html
-rw-r--r-- 1 apache apache 2673  9月  9 21:51 2013 admin/memo1.txt
-rw-r--r-- 1 apache apache 4038  9月  9 21:53 2013 admin/memo2.txt

もう少し"phpLDAPadmin"がんばらないと...
--------
http://www.suz-lab.com

0 コメント: