web-dev-qa-db-ja.com

Apache 2.4は匿名ユーザーを認証しますが、IPによって他のユーザーを許可します

選択したIPからのユーザーが認証なしでFlaskアプリケーションにアクセスできるようにするが、他のユーザーには資格情報を要求するようにApacheを構成しようとしています。

現状では、私は次の構成を持っています:

<directory /var/www/flaskapp>
    WSGIProcessGroup flaskapp
    WSGIApplicationGroup %{GLOBAL}
    WSGIScriptReloading On
    WSGIPassAuthorization On
    Order deny,allow
    AuthType Basic
    AuthName "Restricted area - authorised users only"
    AuthUserFile "/usr/local/Apache/passwd"
    <RequireAll>
        <RequireAny>
            Require ip 1.1.1.1
         </RequireAny>
        Require valid-user
    </RequireAll>
</directory>

これは機能せず、代わりにすべてのユーザーに認証を求めています。

htpasswdを使用して/usr/local/Apache/passwdの場所にユーザーファイルを作成したことをお伝えしておきます。configに示されています。

6
btongeorge

RequireAny 条件のみが必要です:

<RequireAny>および</ RequireAny>は、<RequireAny>ディレクティブが成功するために成功する必要がある承認ディレクティブのグループを囲むために使用されます。

<RequireAny>
    Require ip 1.1.1.1
    Require valid-user
</RequireAny>
11

Apache 2.4を実行しているので、 を使用できます。あなたの場合、それは:

<If "%{REMOTE_ADDR} != '127.0.0.1'">
  AuthType Basic
  AuthName "Restricted area - authorised users only"
  AuthUserFile usr/local/Apache/passwd
  require valid-user
</If>

CIDR表記もサポートされています。例えば。:

<If "%{REMOTE_ADDR} != '192.168.0.0/24'">
  AuthType Basic
  AuthName "Restricted area - authorised users only"
  AuthUserFile usr/local/Apache/passwd
  require valid-user
</If>
3
Lenniey