ApacheのSatisfyを使って、ユーザ(Basic)認証とIPアドレスによるアクセス制御のどちらかでアクセスを許可する。

Apacheには、Satisfyディレクティブというのがあって、これをAnyに設定することで、ユーザ(Basic)認証とIPアドレスによるアクセス制御のどちらかが通ることでアクセスを許可することができるんですね。

これ知らなかった。便利です。

「Satisfy Any」な設定

例えば、以下のように設定することで、ローカルのPC、もしくは、ユーザー認証を通ったアクセスだけが許可されるようになります。

Order Deny,Allow
Deny from all
Allow from 192.168.1

AuthUserFile /var/www/.htpasswd
AuthGroupFile /dev/null
AuthName MembersOnly
AuthType Basic
require valid-user

Satisfy Any

例えば、同じネットワーク上にいる人にはウェブサイトのある部分について 無制限のアクセスを許したいけれど、外のネットワークの人には パスワードを提供させるようにするためには、次のような設定をすることが できます:

Require valid-user
Order allow,deny
Allow from 192.168.1
Satisfy Any

core – Apache HTTP サーバ

「Satisfy All」がデフォルト

ちなみに、SatisfyはAllがデフォルトです。なので、上記設定のSatisfy Anyの行の記述がない場合、両方の認証が通らないとアクセスすることができないことになります。

カテゴリー: サーバ・インフラのこと   タグ:   この投稿のパーマリンク

トラックバック

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>