BLOGTIMES
2011/07/07

IP認証とBasic認証を併用する

  httpd 
このエントリーをはてなブックマークに追加

特定のIPの時は認証なしで、それ以外はBasic認証するというapacheの設定を良く忘れるのでメモ。

Satisfy ディレクティブ - core - Apache HTTP サーバ

Allow と Require の両方が使われているときの アクセスポリシーを設定します。パラメータは All か Any です。このディレクティブはある場所へのアクセスがユーザ名/パスワード とクライアントのホストのアドレスで制限されているときにのみ 役立ちます。デフォルトの動作 (All) はクライアントがアドレスによる アクセス制限を満たし、かつ正しいユーザ名とパスワードを入力することを 要求します。Any では、クライアントはホストの制限を満たすか、 正しいユーザ名とパスワードの入力をするかをすればアクセスを許可されます。 これは、ある場所をパスワードで保護するけれど、特定のアドレスからの クライアントにはパスワードの入力を要求せずにアクセスを許可する、 というようなときに使用できます。

こんな感じでモロにドキュメントに書いてあったりするのですが、このSatisfy ディレクティブが肝心なときに思い出せなくて設定に手間取ったりするんですよね。

具体的な設定例

具体的には、.htaccessやhttpd.confに下記のような記述を追加することになります。
ポイントは最後の行の Satisfy any です。

AuthType Basic AuthName "Protected Area" AuthUserFile /path/to/htpasswdfile AuthGroupFile /dev/null require valid-user order deny,allow allow from 192.168.100.0/24 deny from all Satisfy any

    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/4312
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン