ユーザー認証
ユーザー認証を実行すると指定されたユーザー名とパスワードを持っていない人の
アクセスを制限する事ができるので、任意のディレクトリを不特定多数に公開しない
といったサーバーの運用ができます。
まず下のように、認証を実行するディレクトリに
".htaccess" という名前をつけたファイルを
保存します。(ファイル名がドットで始まることに気をつけて下さい。)
AuthType Basic AuthName 'Access Restriction Applied' AuthUserFile /home1/l98125/key/.htpasswd AuthGroupFile /dev/null <Limit GET POST> require valid-user </Limit> |
次に AuthUserFile で指定したパスに ".htpasswd"
というパスワードファイルを設置する。
このファイルは特に .htpasswd
である必要はありませんが、ドットで始まるファイルは
いわばUNIXの隠しファイルみたいなものです。
パスワードファイルは ユーザー名:暗号化されたパスワード とします。(下図参照)
username:v3l0KWx6v8mQM |
以上でセットアップは終わり。
ブラウザーでアクセスするとパスワードを要求するウインドウが出てきましたね。
アクセス制限
アクセス元のコンピュータ(リモートホスト)のアドレスを参照し,アクセスの可否を判定する。
学内のみ閲覧可能,などドメインやIPアドレスごとに細かく規制できる。
まず 先程と同様 ".htaccess" ファイルを作成し、以下のように記述する。
<Limit GET POST> order deny,allow allow from .hokusei.ac.jp allow from 192.168. deny from all </Limit> |
この場合 北星ドメイン以外からはアクセス出来ない。
また、
AuthType Basic AuthName 'Budget 2001' AuthUserFile /home1/l98125/key/.htpasswd AuthGroupFile /dev/null <Limit GET POST> order deny,allow deny from .msn.com deny from 205.188.160. allow from .ac.jp require valid-user </Limit> |
以上のように、ユーザ認証と組み合わせることも可能である。
その他
上の方法ではおおざっぱすぎるので条件ごとの制御をもうちょっと細かくしてみましょう。
AuthType Basic AuthName 'Budget 2001' AuthUserFile /home1/l98125/key/.htpasswd AuthGroupFile /dev/null <Limit GET POST> require valid-user Satisfy any order deny,allow allow from 192.168. allow from .hokusei.ac.jp deny from .seikyou.ne.jp </Limit> |
もう、わかりますね!
"Satisfy any"
ではいずれかの条件に合致すると許可されます。つまり、学内からは
認証なしで通過することができるが、そのほかは認証が必要である。
しかし、".seikyou.ne.jp"
からのリクエストはすべて拒否するということになります。
"Satisfy all"
の場合はすべての条件を満たしている場合のみ許可されることになります。
つまり、先ほどのアクセス制御のことです。
ご注意
などでしょうか。詳しくはアパッチのマニュアルを解読してみましょう。
関連リンクなど