選択した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に示されています。
RequireAny
条件のみが必要です:
<RequireAny>および</ RequireAny>は、<RequireAny>ディレクティブが成功するために成功する必要がある承認ディレクティブのグループを囲むために使用されます。
<RequireAny>
Require ip 1.1.1.1
Require valid-user
</RequireAny>
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>