/app
私は nginx-auth-ldap で NGINX 1.8.0 を実行しています。認証/承認に使用しているアプリケーションが動作していますauth_ldap
。
server {
listen 80;
...
location /app/ {
auth_ldap "Restricted";
auth_ldap_servers test;
...
}
}
自動メンテナンス (Web API) を実行するために、追加のアカウントにアクセス権を付与したいと思います。セキュリティ上の理由から、bot
LDAP アカウントを作成することはできません。bot
auth_ldap
と を同時に使用しようとしましたがauth_basic
(後者は単一のbot
ユーザー)、どの資格情報でも 401 が返されます。私が間違えたのでしょうか、それともこの方法では動作させることができないのでしょうか?
server {
listen 80;
...
location /app/ {
auth_ldap "Restricted";
auth_ldap_servers test;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htaccess
...
}
}
これがうまくいかない場合、他にどのように進めればよいかアドバイスはありますか?
注: でアプリケーションをauth_basic
別の場所にミラーリングしようとしました。アクセス制御は機能しますが、アプリケーションは URL をハードコードします。からの応答には/app-auth-basic
へのリンクが含まれます/app
。アプリケーションを制御できないため、これはどこにもつながっていないようです。
server {
listen 80;
...
location /app/ {
auth_ldap "Restricted";
auth_ldap_servers test;
...
}
location /app-auth-basic/ {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htaccess
...
}
}
答え1
ほぼ正解ですが、satisfy
指示が抜けています:
server {
listen 80;
...
location /app/ {
satisfy any;
auth_ldap "Restricted LDAP";
auth_ldap_servers test;
auth_basic "Restricted htaccess";
auth_basic_user_file /etc/nginx/.htaccess
...
}
}
これを行うと、最初に「制限された LDAP」(LDAP 資格情報のみを受け入れる) という認証ダイアログが表示されます。[キャンセル] をクリックすると、「制限された htaccess」(htaccess ファイルにあるユーザー/パスワードのみを受け入れる) という別の認証ダイアログが表示されます。最初のダイアログで既に正しい資格情報を入力している場合は、2 番目のダイアログは表示されないことに注意してください。
あるいは、htaccess 認証情報をすぐに送信してアクセスすることもできます。http://user:[email protected]