私はnginx-auth-ldapを使ってNGINX 1.8.0を実行しています。認証/権限を付与する/app
ために実行されているアプリケーションがあります。auth_ldap
効果がある
server {
listen 80;
...
location /app/ {
auth_ldap "Restricted";
auth_ldap_servers test;
...
}
}
bot
自動メンテナンス(Web API)を実行するために追加のアカウントへのアクセスを許可したいと思います。セキュリティ上の理由からbot
LDAPアカウントを作成できません。
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]