ApacheでIP認証とベーシック認証を組み合わせる - CentOS 7

ApacheでIP認証とベーシック認証を組み合わせる方法の解説です。

たとえば、社内からのアクセスであれば認証がなし、社外からのアクセスでは、パスワードを必要にしたいとします。

社内からのアクセスはグローバルIPアドレスで制御できます。

パスワードが必要な場合はベーシック認証が使えます。セキュリティのために接続はHTTPS接続で行うようにしましょう。

バーチャルホストを使っている場合は、それぞれのバーチャルホストのディレクティブの中に書きます。

リバースプロキシを使っている場合は、Proxyディレクティブの中に書きます。元のアクセス制限の設定は削除しても大丈夫です。

  <RequireAny>
    # IP認証
    Require ip 192.168.10.10
    
    # ベーシック認証
    AuthType Basic
    AuthName "Secret Zone"
    AuthUserFile /var/www/.htpasswd
    Require valid-user
  </RequireAny>

RequireAnyは、いずれかが成功した場合は、認証が成功します。IP認証が成功するか、あるいはベーシック認証が成功した場合に、認証が成功します。