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

1

Estou executando o NGINX 1.8.0 com o nginx-auth-ldap. Eu tenho um aplicativo em execução em /app usando auth_ldap para autenticação / autorização. Funciona.

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

Gostaria de dar acesso a uma conta bot extra para executar alguma manutenção automatizada (API da web). Não consigo criar uma conta LDAP para bot por motivos de segurança.

Eu tentei usar simultaneamente auth_ldap e auth_basic (com um único usuário bot para o último), mas qualquer credencial resulta em um 401. Eu cometi um erro ou simplesmente não é possível obtê-lo? trabalhar assim?

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ê tem alguma outra recomendação sobre como proceder?

Observação: tentei espelhar o aplicativo com auth_basic em um local diferente. O controle de acesso funciona, mas o aplicativo codifica sua URL: as respostas de /app-auth-basic contêm links de volta para /app . Eu 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
        ...
    }
}
    
por marcv81 26.10.2016 / 07:22

1 resposta

0

Você estava quase certo, mas sem a diretiva 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

        ...
    }
}

Com isso, você será solicitado primeiro por uma caixa de diálogo de autenticação que diz "LDAP restrito" (que aceita apenas credenciais LDAP). Se você clicar em cancelar, você será solicitado por 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.

Como alternativa, você pode enviar credenciais do htaccess via http://user:[email protected] imediatamente para entrar.

    
por 29.05.2018 / 11:35