このセクションでは、例えばアクセス制御のための LDAP 設定や、 Apache 上での DAV メソッドの設定などの、 いろいろな管理タスクについて説明します。
DAV に関する設定変更の大部分は、httpd.conf ファイル上で行われます。このファイルは、 /usr/local/apache/conf/httpd.conf にあります。
httpd.conf は、Apache が利用するテキストベースの 設定ファイルです。どんなテキストエディタでも編集できます - 私は vi が好みです。変更を行う前に、このファイルのバックアップ・コピー を取っておいてください。
httpd.conf に変更を加えたら、 /usr/local/apache/bin/apachectl restart コマンドで Apache サーバを再起動しなくてはなりません。しかし、再起動する前に /usr/local/apache/bin/apachectl configtest コマンドで httpd.conf に設定が正しく行われているか テストしてください。
前のセクションで DAVtest 共有ディレクトリを作成した際に、 認証のために LDAP を使いました。しかしこの例では、 LDAP のユーザ ID/パスワードで認証できる人なら誰でも、 そのフォルダにアクセスできることになります。
httpd.conf ファイルに require ディレクティブを入れることで、特定のユーザや特定のユーザからなるグループ に対するアクセスを制限できます。
前のセクションの DAVtest に関する設定をもう一度見てみましょう。
<Directory /usr/local/apache/htdocs/DAVtest> Dav On #Options Indexes FollowSymLinks AllowOverride None order allow,deny allow from all AuthName "LDAP_userid_password_required" AuthType Basic <Limit GET PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK> Require valid-user </Limit> LDAP_Server ldap.server.com LDAP_Port 389 Base_DN "o=ROOT" UID_Attr uid </Directory> |
LDAP の UID を使って、DAV 用フォルダへのアクセスを制限できます。
require valid-user ディレクティブを、 require user 334455 445566 に変えます。
こうすることで、UID が 334455 と 445566 であるユーザにアクセスを制限します。 それ以外の誰もこのフォルダにアクセスできなくなります。
require ディレクティブは、ユーザが属するグループで アクセスを制限するのにも利用できます。これは、LDAP グループか LDAP フィルタのいずれかを利用することで可能になります。フィルタを利用するなら、 LDAP のフィルタ構文に適合していないといけません。
誰もが DAV の共有リソースを閲覧可能であっても、DAV の共有リソースの 編集機能を特定ユーザに限定する必要があるかもしれません。 これは httpd.conf ファイルに <Limit> タグを入れることで簡単に実現できます。
<Directory /usr/local/apache/htdocs/DAVtest> Dav On #Options Indexes FollowSymLinks AllowOverride None order allow,deny allow from all AuthName "LDAP_userid_password_required" AuthType Basic <Limit GET PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK> Require valid-user </Limit> LDAP_Server ldap.server.com LDAP_Port 389 Base_DN "o=ROOT" UID_Attr uid </Directory> |
<limit> を以下のように変えることで、 特定ユーザに書きこみアクセスを制限します。
<Limit PUT POST DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK> Require 334455 </Limit> |
要するに、PUT POST DELETE PROPPATH MKCOL COPY MOVE LOCK そして UNLOCK 機能は、UID が 334455 であるユーザだけが行えます。他の人は皆、 リソースに GET や PROPFIND メソッドを適用できますが、 その他のどのメソッドも適用できません。