mod_davで Basic認証をする!
に関するインストールメモ(2002/02/17, 更新日:2003/03/28)
1) Basic認証用ファイルを作成します。当然の事ながら mod_dav で公開するフォルダー内、それ以下に認証用ファイルを作成すべきではありません。
# mkdir -p /home/www/pwd
# chown -R httpd:httpd /home/www/pwd
# cd /home/www/pwd
# /usr/bin/htpasswd -c hoge.pwd hogehoge
※ htpasswd -c Basic認証用ファイル 追加したいユーザ
※ 2人目からは -c がいりません
htpasswd Basic認証用ファイル 追加したいユーザ2) srm.conf の定義です。
<Location /DAV>
DAV On
<Limit GET PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
AuthType Basic
AuthName "WebDAV hoge"
AuthUserFile /home/www/pwd/hoge.pwd
Require valid-user
</Limit>
</Location>
3) とここまでは、順調に思えた設定も WindowsXP では、Basic認証が蹴られてしまいうまい事いきません。何故かというと WindowsXP から 「アクセスサーバ名@hogehoge」というユーザ名で認証を発行しているのです。Windows2000/ME は hogehoge なのにぃぃ〜。へんなの Microsoft !
てな訳で、hogehoge ユーザを Windows2000/ME 用として 「hogehoge」、WindowsXP用として「sea-bird.org\hogehoge」 として作り無事アクセスすることができました。
# /usr/bin/htpasswd -c hoge.pwd hogehoge
# /usr/bin/htpasswd hoge.pwd sea-bird.org\\hogehoge3) 取消線がありますが、NormalizeUsername 命令が拡張されており、WindowsXP からアクセス(ダイジェスト認証)されたときに、FQDN またはIPアドレス+ユーザ名という形で送信されてしまう不具合が解消されています。この機能は、デフォルトで Yes になっているため、どーしても WindowsXP からアクセスされるのが嫌な場合は、off にすると良いでしょう。
4) 最終的な httpd.conf の定義♪(こちら必見)
LoadModule dav_module modules/libdav.so
LoadModule headers_module modules/mod_headers.so
LoadModule encoding_module modules/mod_encoding.so
AddModule mod_dav.c5) 最終的な srm.conf の定義♪(こちら必見)
<Location />
Header add MS-Author-Via "DAV"
</Location>
<IfModule mod_encoding.c>
EncodingEngine on
NormalizeUsername on
SetServerEncoding UTF-8
DefaultClientEncoding JA-AUTO-SJIS-MS SJIS
AddClientEncoding "cadaver/" EUC-JP
</IfModule>
DAVLockDB /home/www/lock
DAVMinTimeout 600
<Location /DAV>
DAV On
<Limit GET PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
AuthType Basic
AuthName "WebDAV hoge"
AuthUserFile /home/www/pwd/hoge.pwd
Require valid-user
</Limit>
</Location>蛇足) html ベースからアクセスする方法もあるらしのですが、いまだできておらず(Basic認証は、いまのところできてないっす)
<STYLE>
A {behavior: url(#default#AnchorClick);}
</STYLE>
<A HREF="http://hoge.com/DAV/" FOLDER="http://hoge.com/DAV/" target="_top"> Webフォルダー</A><BR>
mod_encoding 使用時には、cgi に影響が出る場合があります。ここを参照してください。