iPlanet Web Server 資料一覧

ユーザ認証に.htaccessを使用する方法

2007/7/29更新

対応バージョン: 4.1

以下の手順で設定する。

iWS付属の専用モジュールhtaccess.soのロード設定

/usr/netscape/server4/<サーバ>/config/obj.confに以下の内容を追加してiWSを再起動。

他のInitディレクティブの最後
Init fn="load-modules" funcs="htaccess-init,htaccess-find" \
shlib="/usr/netscape/server4/plugins/htaccess/bin/htaccess.so"
Init fn="htaccess-init"
<Object name="default">ディレクティブ内のPathCheck定義の最後
PathCheck fn="htaccess-find"

特定のURLに対してLDAPのユーザ認証を利用していた場合はその設定を削除

/usr/netscape/server4/<サーバ>/conf_bk/<サーバ>.acl.?内の以下の記述を削除してiWSを再起動。

acl "path=/path/to/go/some.cgi";
authenticate (user,group) {
      database = "default";
      method = "basic";
};

iWSのユーザ認証用ファイルを作成するスクリプトを作成

処理内容は/etc/shadowからアカウント名とパスワードを取り出しiWSのユーザ認証用ファイル(/usr/netscape/server4/.htpasswd)を作成するという簡単なもの。

尚、以下のアカウントは対象外とする。

root(セキュリティ上の問題)
パスワードフィールドに`NP'が設定されているもの(元々ログイン不可)
パスワードフィールドが`*'で始まっているもの(元々ログイン不可)
#!/bin/sh -p

HTPASSWD=/usr/netscape/server4/.htpasswd

awk -F':' '$1 != "root" && $2 != "NP" && $2 !~ /\*/ {printf("%s:%s\n",$1,$2)}' \
/etc/shadow > ${HTPASSWD}

chmod 644 ${HTPASSWD}

認証させたいURL(ディレクトリ)配下に以下の内容で.htaccessを作成

AuthType Basic
AuthUserFile /usr/netscape/server4/.htpasswd
AuthGroupFile /dev/null
<Limit GET POST>
  order deny,allow
  deny from all
  allow from all
  require valid-user
</Limit>