Webページにパスワードでアクセス制限をかけたい
パスワード認証によるアクセス制限
Web サイトに掲載する情報のなかには、限られたひとたち (例えば会員、スタッフなど) だけに公開したい情報もあります。
パスワード認証によるアクセス制限を使えば、特定の ユーザ名 と パスワード を入力したいひとだけに、Web ページへのアクセスを制限することができます。
アクセス制限は、ディレクトリ単位でできます。アクセス制限されたディレクトリの中のページ (そのディレクトリの中に別のディレクトリがあれば、その中のページも) が、アクセス制限の対象となります。
* 以下の説明は、JCA-NET メインサーバ (www.jca.apc.org) の Web サイトについてのものです。
Web パブリッシング サーバの Web サイト (www1.jca.apc.org および独自ドメインの Web サイト) では、ソンニムのアクセス権を変更することで、アクセス制限ができます。
* このページの説明にでてくる「ユーザ名」と「パスワード」という言葉は、 JCA-NET ユーザ ID や JCA-NET パスワードとは、なんの関係もありません。
手順
1. アクセス制限をしたいディレクトリを決めます。なければ、つくります。
このディレクトリは、Web によるアクセスができる場所 (個人用 Web サイトであれば public_html ディレクトリの中) でなければなりません。
2. .htaccess ファイルを作成し、 アクセス制限の記述をします。
すでにアクセス制限をしたいディレクトリに .htaccess ファイルがある場合は、 そのファイルに アクセス制限の記述を書き加えます。
記述のしかたは 下記 を参照してください。
3. .htaccess ファイルを、FTP ソフトウェアなどで アップロードします。
なお、FTP でのアップロードは テキストモード (ASCII モード) で 行ってください。バイナリモードでアップロードすると、 正しく動作しません。
4. パスワード情報を書き込んだ .htpasswd ファイルを作成します。
作成のしかたは 下記 を参照してください。
.htaccess の書き方
.htaccess ファイルには、つぎのようなものを書きます。
* AuthUserFile 行
* AuthName 行
* AuthType 行
* 部
AuthUserFile 行
.htpasswd ファイルを置く場所を書きます。 フルパスで書く必要があります。
たとえば、marupeke のホームディレクトリに置く場合
AuthUserFile /home/jcagw/marupeke/.htpasswd
となります (JCA-NET では、ユーザのホームディレクトリの場所は /home/jcagw/JCA-NETユーザID と決まっています)。
AuthName 行
アクセス制限のされているディレクトリにアクセスすると、 Web ブラウザでは ユーザ名 と パスワード の入力を促します。このときに表示される説明を書きます。
たとえば、つぎのように書くと
AuthName "Private Space"
Web ブラウザでアクセスしたときに、「Private Space のユーザ名とパスワードを 入力してください。」といったメッセージが表示されます。
AuthType 行
つぎのように書きます
AuthType Basic
部
アクセス制限で、パスワード認証を有効にするユーザ名を書きます。
つぎのように書きます
require user guest1
require user guest2
require user guset3
上記では、guest1、guest2、guest3 の 3 人が、パスワード認証によってこのディレクトリの中のページを見ることができます (パスワードのほうは、下記の .htpasswd ファイルで設定します)。ここに書かれていないユーザ名では、アクセスはできません。
「GET」「HEAD」「POST」は大文字でなければなりません。
例
AuthUserFile /home/jcagw/marupeke/.htpasswd
AuthName "Private Space"
AuthType Basic
require user guest1
require user guest2
require user guest3
.htpasswd ファイルを作る
htpasswd コマンドを使って、パスワードのファイルを作ります。
1. telnet で JCA-NET にログインします。ログインの際は、JCA-NETユーザID と JCA-NETパスワード が必要です。
2. ログイン後にメニューが表示されたら、メニューを終了します。 すると、コマンドプロンプトが表示されます。
3. htpasswd コマンドを、ユーザ名 の数だけ実行し、 .htaccess ファイルをつくります。
JCA-NET:~% /usr/local/bin/htpasswd -c /home/jcagw/marupeke/.htpasswd guest1
Adding password for guest1.
New password: guest1 のパスワードを入力
Re-type new password: おなじパスワードをもう一度入力
JCA-NET:~% /usr/local/bin/htpasswd /home/jcagw/marupeke/.htpasswd guest2
Adding password for guest2.
New password: guest2 のパスワードを入力
Re-type new password: おなじパスワードをもう一度入力
JCA-NET:~% /usr/local/bin/htpasswd /home/jcagw/marupeke/.htpasswd guest3
Adding password for guest3.
New password: guest3 のパスワードを入力
Re-type new password: おなじパスワードをもう一度入力
部分は、実際に入力する部分です。パスワードの入力内容は、画面には表示されません。
入力の各行末では、改行キーを押します。
はじめて .htpasswd ファイルをつくるときだけ、「htpasswd」の後に「-c」を付けます。今後、別のユーザ名のパスワードを追加したり、パスワードを変更したいときは、「-c」をつけません。
注意
* いったん .htpasswd ファイルをつくったあとで、htpasswd を「-c」 をつけて実行してしまうと、それまでのパスワード情報はすべて 上書きされて消えてしまうので、注意して操作してください。
* パスワード には、JCA-NET ユーザ ID のパスワードと同じものは設定しないようにしてください。
* パスワードは、.htpasswd に暗号化されて記録されます。 とはいえ、.htpasswd ファイルが Web からアクセスできる場所 (たとえば 個人 Web サイト の場合は public_html ディレクトリの中) にあるのは好ましくありません。