Powered by
Movable Type 4.1

« GetifをつかってMIBからOIDを調べる | メインですよ(エントリーアーカイブ) | グループポリシー(セキュリティポリシー)を手動で適用させる »

BASIC認証とorder deny,allowをあわせたアクセス制御

いつも忘れるので書いておこう。
ある場所からは認証なしでページ閲覧できて、
他の場所からは認証が必要になるというパターンの.htaccessの書き方。
もちろん、httpd.confなどに直接書いてもOKです。

【条件】
mod_access モジュールが有効になっていること
mod_auth モジュールが有効になっていること

○httpd.conf

AllowOverride Limit AuthConfig 

○.htaccess

# "Limit"ルール
#
# この書き方に違和感を覚える人もいるかもしれませんが、
# (特にルーターの設定をする人)
# ルーターのACLは上から評価していって、
# 適合するものがあったらその時点で評価は終了しますが、
# Apacheのこれは、Orderの順番で必ず両方を評価していき、
# 下位のACLが上位のACLを上書きしていきます。
# つまり、172.16.0.1の場合、"Deny from all"で拒絶対象となりますが
# 次の"Allow from 172.16."で救済されるわけです。
#

Order Deny,Allow
Deny from all
Allow from 10.0.0.32/27 172.16. 192.168.0.1 .example.local

#
# "AuthConfig"ルール
#

AuthUserFile /var/www/htpasswd
AuthName "Secret Area"
AuthType Basic
require valid-user

#
# Sastisfy any だと"Limit"と"AuthConfig"どちらかにパスすればOKです。
# これを Satisfy all とすると、
# "Limit"と"AuthConfig"両方の条件を満たさないとOKとなりません。

Satisfy any

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)