この前、友達に「ホームページでIDとパスワード入れて見るようにするやつはどうするの」)と聞かれ、概要を伝えたんですが、以前にも知り合いに聞いたことがあります。自分のLinuxサーバーでもできるはずだよな〜と言うことでやってみました。通常は次の様な画面が表示され、IDとパスワードを入力します。
ユーザー認証というか、IDとパスワードが知らない人のデータ参照を制限する方法は幾つか在るようですが、今回はWEBサーバーの認証機能を使う方法です。
参考にしたのは、知人からいただいたメールとその中の説明にあったパスワード管理のフリーCGIのあったホームページの解説です。
□ファイルの構成を考える
LANを組んでいるLinuxサーバーの以下のURLでユーザー認証を設定します。有名なホームぺー
「ネットサーフレスキュー【Web裏技】」にあるフリーCGIの「パスワードアクセス制限管理 htpwd」をダウンロードしその説明ファイル「readme.txt」を読んで以下のようにファイルを設定しました。
なお「www.lan.iscb.net」はインターネット上には存在しませんのでご注意下さい。
- ユーザー認証を設定(パスワード)するディレクトリ(フォルダ) http://www.lan.iscb.net/~stone/ninsyo/
Linuxサーバーでは、「/home/stone/public_html/ninsyo」となります。
- パスワードを保存して置くディレクトリ
Linuxサーバー上では、/home/stone/public_html/passtest
- フリーCGIを格納するディレクトリ
Linuxサーバー上では、/home/stone/public_html/paskanri
ここへ、ダウンロードしたCGIプログラムを格納します。
必要なファイルを適切な位置にコピーしたら、ファイルの属性も正しく設定してください。
□Aapcheの設定ファイルを確認
/etc/httpd/conf/access.conf
<Directory "home/*/public_html">
Options ExecCGI
AllowOverride None
</Directory>
でAllowOverrideのNoneを Allに変更しています。
□フリーCGIでパスワードを管理
CGIでパスワードとマスターキーを登録するファイルの位置を
初期設定を変更している為に、
$USER = "../passtest/user.cgi";
$MASTER = "../passtest/admin.cgi";
と変更しています。
URLを
http://www.lan.iscb.net/~stone/paskanri/index.html
と入力し、CGI「パスワードアクセス制限管理 htpwd」を動作させました。そしてマスターキーを設定し、認証に使うIDとパスワードを設定しました。
http://www.lan.iscb.net/~stone/ninsyo/.htaccess
AuthUserFile /home/stone/public_html/passtest/user.cgi
AuthGroupFile /dev/null
AuthName "この内容がパスワード入力画面に表示されます"
AuthType Basic
<Limit POST GET PUT>
require valid-user
</Limit>
http://www.lan.iscb.net/~stone/ninsyo/index.htmlの内容
<HTML>
<HEAD><TITLE>ユーザー認証のテスト</TITLE></HEAD>
<BODY>
<CENTER>
<font size=+2>ユーザー認証のテスト</font><BR>
<HR>
このメッセージが表示されているならば、ユーザー認証で認証された事になると思います。
<HR>
[<A href="../index.html">戻る</A>]
</CENTER>
</BODY>
</HTML>
□動作の確認する
ブラウザのアドレスに、「http://www.lan.iscb.net/~stone/ninsyo/ 」と入力します。以下のユーザー名に「□フリーCGIでパスワードを管理」で設定したIDをパスワードの欄にIDと対に設定したパスワードを入力します。

正しい、IDとパスワードが入力されると「ユーザー認証のテスト」画面が表示されます。