NGINX:auth_basicとauth_ldapを使用して場所へのアクセスを制御しますか?

NGINX:auth_basicとauth_ldapを使用して場所へのアクセスを制御しますか?

私は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)を実行するために追加のアカウントへのアクセスを許可したいと思います。セキュリティ上の理由からbotLDAPアカウントを作成できません。

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]

おすすめ記事