2011年8月14日日曜日

パスワードファイルを使ったユーザ認証

あるWebページを特定のユーザにだけ公開することができます。流れは下記の通りです。
①認証が必要なページを見せるようにWebサーバへリクエストを送る
②Webサーバは、WWW-Authenticateヘッダを含むレスポンスを返す
③ユーザ側のブラウザがそれを検知して、ユーザ名とパスワードを入力するダイアログボックスを表示
④ユーザがユーザ名とパスワードを入力して、Webサーバに再びリクエストを送信
⑤Webサーバはパスワードファイルを参照して、認証成功ならページをユーザへ送る


■パスワードファイルを作成する
下のコマンドを使います。
# htpassed ${オプション} ${ファイル名} ${ユーザ名}

例)
# htpasswd -c /etc/httpd/.htpasswd user1
New password: ****                                   
Re-type new password: ****
Adding password for user user1


■ページ(secret.html)にユーザ認証の設定をする
Apacheの設定ファイル(httpd.conf)に下記を追加する
<Files secret.html>                                 
# 認証タイプの指定
AuthType Basic
# パスワードファイルの場所
AuthUserFile /etc/httpd/.htpasswd
# ダイアログボックスのメッセージの指定
AuthName "Certification"
#アクセス制御の指定
require valid-user
</Files>


Apacheを再起動した後、ブラウザからsecret.htmlにアクセスすると、下の画面のようにユーザ認証します。

%2525E3%252582%2525B9%2525E3%252582%2525AF%2525E3%252583%2525AA%2525E3%252583%2525BC%2525E3%252583%2525B3%2525E3%252582%2525B7%2525E3%252583%2525A7%2525E3%252583%252583%2525E3%252583%2525882011-08-1421.50.45-2011-08-14-21-26.png

パスワードファイルの作成で、追加したユーザとパスワードを入力して、ページが見れることを確認しました。

0 件のコメント:

コメントを投稿