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자동화된 유지 관리(웹 API)를 수행하기 위해 추가 계정에 대한 액세스 권한을 부여하고 싶습니다 . 보안상의 이유로 LDAP 계정을 만들 수 없습니다 bot.

auth_ldapauth_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 파일에 있는 사용자/비밀번호만 허용)라는 다른 인증 대화 상자가 표시됩니다. 첫 번째 대화 상자에 이미 올바른 자격 증명을 입력한 경우 두 번째 대화 상자는 나타나지 않습니다.

또는 바로 htaccess 자격 증명을 보내 로그인할 수도 있습니다.http://user:[email protected]

관련 정보