ApacheでのBasic認証とIPアドレスによるアクセス制限

Apacheで、以下の条件のいずれかを満たす場合にのみコンテンツが閲覧できるようにした。

  • 基本は、Basic認証でユーザ名とパスワードを要求したい。
  • 指定したネットワークセグメント(192.168.100.0/24)に属するIPアドレスからアクセスはBasic認証なしにしたい。

実際の設定は以下のような感じ。

AuthUserFile  /etc/httpd/conf.d/my-site-htpasswd
AuthGroupFile /dev/null
AuthName      "Please Enter Your Password"
AuthType      Basic
Require valid-user

Satisfy Any

Order allow,deny
Allow from 192.168.100.0/24

Satisfy ディレクティブが肝で、AllとAnyでは以下の違いがあります。(デフォルトは、Allになります)

  • Satisfy All: アドレスによる アクセス制限を満たし、かつ正しいユーザ名とパスワードを入力すること
  • Satisfy Any: アドレスによる アクセス制限を満たすか、 または正しいユーザ名とパスワードの入力をすること