NGINX: controla o acesso a um local com auth_basic e auth_ldap?

NGINX: controla o acesso a um local com auth_basic e auth_ldap?

Estou executando o NGINX 1.8.0 com nginx-auth-ldap. Eu tenho um aplicativo em /appexecução auth_ldappara autenticação/autorização. Funciona.

server {
    listen 80;
    ...
    location /app/ {
        auth_ldap "Restricted";
        auth_ldap_servers test;
        ...
    }
}

Gostaria de dar acesso a uma botconta extra para realizar alguma manutenção automatizada (API web). Não consigo criar uma conta LDAP por botmotivos de segurança.

Tentei usar auth_ldape simultaneamente auth_basic(com um único botusuário para o último), mas qualquer credencial resultou em 401. Cometi um erro ou simplesmente não é possível fazer funcionar dessa maneira?

server {
    listen 80;
    ...
    location /app/ {
        auth_ldap "Restricted";
        auth_ldap_servers test;
        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/.htaccess
        ...
    }
}

Se isso não funcionar, você teria alguma outra recomendação sobre como proceder?

Nota: tentei espelhar o aplicativo em auth_basicum local diferente. O controle de acesso funciona, mas o aplicativo codifica seu URL: as respostas de /app-auth-basiccontêm links para /app. Não tenho controle sobre o aplicativo, então isso não parece levar a lugar nenhum.

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
        ...
    }
}

Responder1

Você estava quase correto, mas perdeu a satisfydiretiva:

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

        ...
    }
}

Com isso, você primeiro verá uma caixa de diálogo de autenticação que diz "LDAP restrito" (que aceita apenas credenciais LDAP). Se você clicar em cancelar, será exibida outra caixa de diálogo de autenticação que diz "Htaccess restrito" (que aceita apenas usuários/senhas que estão em seu arquivo htaccess). Observe que a segunda caixa de diálogo nunca aparece se você já inseriu as credenciais corretas na primeira.

Alternativamente, você pode enviar credenciais htaccess imediatamente para entrar.http://user:[email protected]

informação relacionada