Autenticação com NGINX

2

Estou executando um conjunto de proxies NGINX usando a autenticação básica do navegador com o arquivo htpasswd para os usuários.

Eu construí um pequeno aplicativo com o Laravel que autentica o usuário e apresenta uma lista de links para esses proxies nginx.

Eu estou olhando para atualizar a autenticação nginx para algo como tokens JWT, no entanto não tenho certeza de que seria seguro o suficiente sem uma API por trás dele para validar o próprio token real?

A outra opção que eu estava pensando era a solução LDAP e ter ambos os proxies do Laravel e do NGINX usando a autenticação do ldap.

Os aplicativos que estão por trás do proxy nginx não têm autenticação e temos a intenção de adicioná-los a esse tempo

    
por Patrick Helms 15.10.2017 / 21:28

2 respostas

2

O Nginx inclui o módulo de autenticação de solicitação ,

implements client authorization based on the result of a subrequest. If the subrequest returns a 2xx response code, the access is allowed. If it returns 401 or 403, the access is denied with the corresponding error code. Any other response code returned by the subrequest is considered an error.

For the 401 error, the client also receives the “WWW-Authenticate” header from the subrequest response.

Duas possibilidades vêm à minha mente:

  • Você poderia estender seu aplicativo existente do Laravel para que fosse possível "vincular" o Nginx, que levaria o usuário a uma página de "Login" e, se autenticado, envia uma resposta "200 OK" para Nginx.
  • Você pode verificar as primeiras soluções existentes, aproveitando essa técnica, por exemplo, Autenticação LDAP Nginx .

Elaborando a segunda resposta:

  • Se os dados da conta estiverem realmente armazenados no LDAP, você pode escrever um script que é executado regularmente via cron, por exemplo, que extrai os dados do LDAP e os grava em um arquivo htpasswd para ser lido pelo Nginx. / li>
por 15.10.2017 / 23:39
0

O Nginx não tem uma maneira interna de fazer isso. Ele só pode fazer autenticação de htpasswd e regras de permissão / negação por IP.

O Nginx Plus tem uma maneira de fazer isso, e é descrito em detalhes em Blog do Nginx

    
por 15.10.2017 / 22:19