Gostaria de enviar solicitações de clientes IMAP para um back-end IMAP por meio de um proxy nginx. De acordo com omail_auth_httpmódulo, uma diretiva auth_http
deve ser usada para autenticar os clientes. Mas qual é exatamente o propósito auth_http
, por que o processo de autenticação não pode simplesmente ser encaminhado para o back-end IMAP?
Pelo que eu sei, auth_http
aponta para um script de autenticação que usa um protocolo HTTP personalizado para determinar qual back-end será usado, etc., e a autenticação real baseada em IMAP é completamente ignorada. Estou correcto?
Eu apreciaria se alguém pudesse postar um exemplo prático.
Responder1
O auth_http
faz duas coisas principais:
- Ele autentica usuários (incluindo várias opções para atrasar efetivamente os usuários em caso de falha na autenticação).
- E determina qual back-end usar (e qual nome de usuário e senha usar na autenticação de back-end, se for o caso).
Embora em alguns casos a autenticação possa ser realizada diretamente por um back-end, nem sempre é possível. Além disso, se o nginx precisar ser usado como proxy de email, isso quase sempre significa que há vários back-ends e o back-end não é conhecido com antecedência.
Também é mais eficiente lidar com a autenticação (em particular, erros de autenticação) com o nginx, pois os servidores de e-mail tendem a usar o modelo de processo por conexão e não podem esperar um pouco antes de retornar um erro.
Se você não se importa com todos os itens acima e deseja que o nginx apenas passe uma conexão para um back-end predeterminado, você pode usar algo como isto no bloco nginx http{} como um script auth_http simples:
location = /auth {
add_header Auth-Status OK;
add_header Auth-Server 127.0.0.2; # backend ip
add_header Auth-Port 143; # backend port
return 204;
}
Com esse script de autenticação, o nginx sempre obterá um resultado de autenticação bem-sucedido e passará a conexão para o backend especificado, com nome de usuário e senha fornecidos pelo cliente.
Observe, porém, que isso devenãoser usado com SMTP, pois não há autenticação de back-end com SMTP.