<back> <home>

ウェッブサイトへのアクセス制限を掛ける方法(Basic認証)

2009年1月18日()

 Basic 認証は、サイトにアクセスすると、下のような画面が出て

ユーザー名とパスワードを入れないと、アクセスできないようにするシステムです。

作り方: 

◎ .htaccess ファイルを保護したいサイトに置き。.htpasswd ファイルにパスワードを入れるだけです。 .htpasswd ファイルは DocumentRoute より上に置くよう推奨されています。例えば DocumentRoute が、 /home/hogehoge/public_html ならば、 /home/hogehoge/.htpasswd のように設定します。

○ .htaccess の内容:

AuthUserFile /home/hogehoge/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user

説明:

AuthUserFile /home/hogehoge/.htpasswd : パスワードを入れたファイルをフルパス(絶対パス)で指定する。相対パスは不可。ファイル名は自由。
AuthGroupFile /dev/null : グループ毎にアクセスを許可する場合に使う。 /dev/null はそれが無いということ。
AuthName "Please enter your ID and password" : アクセスしたとき表れる文章。表現は自由。日本語は使わない方が無難。
AuthType Basic : Basic と Digest の2種。後者はセキュリティが高いが対応していないブラウザもある。
require valid-user : ユーザー制限をする。

○ .htpasswd の内容: "ユーザー名:暗号化されたパスワード" を改行区切りで入れます。

taro:taRvH3GpMgFLc
jiro:jipqpgTA4Cu7Q

  上のパスワードは、ユーザーtaro に対しichiban、ユーザーjiroにniban と設定したものを暗号化したものです。暗号化されているので、万が一このファイルの中身が漏れてもパスワードが解読される危険性は少ないようです。暗号化は、htpasswd コマンドを使いますが、結構面倒なので、こことかここらへんなどのサイトを使わせてもらい、パスワードを作るとよいでしょう。パスワードのパーミッションは604とします。

◎ ユーザー制限方法:

複数のユーザー名:パスワードが設定されていれば、任意の正しい組み合わせで入れます。特定の個人に入室制限したい場合は

1.ユーザー名一つだけに制限: require user taro と書き込めば、ユーザー taro だけが入れます。他に沢山の ユーザー名:パスワードが

あっても、taro だけが許されます。

2.複数のユーザー名を入れたい場合は: .htaccess の2行目を AuthGroupFile /home/hogehoge/.group で .group ファイルを指定し、その中に許可するグループ名を入れます。 .group ファイルの中に

Agroup: taro jiro saburo

Bgroup:youko keiko

を書き込みます。その上で require group Agroup とすれば、taro, jiro, saburo は入れますが、youko,keiko は入れません。

リンク:

  .htaccess 活用法 webサーバーの構築[Apache]        


<back> <home>