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)를 수행하기 위해 추가 계정에 대한 액세스 권한을 부여하고 싶습니다 . 보안상의 이유로 botLDAP 계정을 생성할 수 없습니다.

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]

관련 정보