![NGINX: auth_basic 및 auth_ldap을 사용하여 위치에 대한 액세스를 제어합니까?](https://linux55.com/image/97280/NGINX%3A%20auth_basic%20%EB%B0%8F%20auth_ldap%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%9C%84%EC%B9%98%EC%97%90%20%EB%8C%80%ED%95%9C%20%EC%95%A1%EC%84%B8%EC%8A%A4%EB%A5%BC%20%EC%A0%9C%EC%96%B4%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
nginx-auth-ldap을 사용하여 NGINX 1.8.0을 실행하고 있습니다. 인증/권한 부여를 /app
위해 실행 중인 애플리케이션이 있습니다 . auth_ldap
효과가있다.
server {
listen 80;
...
location /app/ {
auth_ldap "Restricted";
auth_ldap_servers test;
...
}
}
bot
자동화된 유지 관리(웹 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 파일의 사용자/비밀번호만 허용됨)를 묻는 또 다른 인증 대화 상자가 나타납니다. 첫 번째 대화 상자에 올바른 자격 증명을 입력한 경우 두 번째 대화 상자는 나타나지 않습니다.
또는 htaccess 자격 증명을 직접 보내 로그인할 수도 있습니다.http://user:[email protected]