Tenho um servidor proxy Nginx com módulo headers-more-nginx que passa solicitações para o Exchange Server 2019. Atualmente, o Outlook 2019 fica preso em um loop solicitando credenciais toda vez que tento conectar ao meu servidor - ele solicita uma senha, aceita e pergunta novamente. Esse problema se repete em outros dispositivos.
O Outlook mais recente da Microsoft Store funciona bem.
Além disso, se for Netscaler em vez de Nginx, tudo funcionará normalmente, então presumo que o Nginx esteja configurado incorretamente, mas não consigo acessar a configuração do Netscaler agora.
Como devo alterar a configuração do Nginx para que ele funcione corretamente?
Configuração atual do nginx:
http {
server {
listen 80;
listen 443 ssl;
server_name mail.mydomain.com;
ssl_certificate /etc/ssl/certs/mydomain.crt;
ssl_certificate_key /etc/ssl/certs/mydomain.key;
ssl_trusted_certificate /etc/ssl/certs/mydomain.crt;
ssl_session_timeout 5m;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload;" always;
location / {
proxy_pass_request_headers on;
keepalive_timeout 3h;
tcp_nodelay on;
client_max_body_size 3G;
#proxy_buffering off; # tried both on and off
#proxy_request_buffering off;
proxy_read_timeout 3600;
proxy_pass_header Date;
proxy_pass_header Server;
proxy_set_header Authorization $http_authorization;
proxy_pass_header Authorization;
proxy_set_header Connection "Keep-Alive";
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
more_set_input_headers 'Authorization: $http_authorization';
# I tried to use Nginx's domain as well as domain of Exchange server, no luck
more_set_headers -s 401 'WWW-Authenticate: Basic realm="mail.mydomain.com"';
proxy_pass https://exchange$request_uri;
}
}
}
upstream exchange {
ip_hash;
server exchangeip1:443;
server exchangeip2:443;
}
Parece que o problema pode estar relacionado a como o Nginx está lidando com cabeçalhos de autenticação e configurações de proxy. Aqui estão alguns ajustes que você pode tentar para resolver o problema de loop de credenciais com o Outlook 2019:
O Outlook frequentemente usa autenticação NTLM, que pode não ser manipulada corretamente pela sua configuração atual do Nginx. Você pode usar o nginx-ntlm-module para dar suporte à autenticação NTLM. Você pode encontrar mais informações e instruções de instalação aqui.
Certifique-se de que as diretivas proxy_set_header estejam corretamente definidas para manipular cabeçalhos de autenticação. Aqui está um exemplo de configuração que inclui suporte NTLM:
Certifique-se de que seus certificados SSL/TLS estejam corretamente configurados e válidos. Às vezes, problemas com SSL/TLS podem causar prompts de autenticação repetidos.
Verifique se o seu Exchange Server está configurado para aceitar os métodos de autenticação que estão sendo passados pelo Nginx. Talvez seja necessário ajustar as configurações no Exchange Management Shell para garantir a compatibilidade.
Verifique os logs de erro do Nginx para obter pistas sobre o que pode estar causando o problema. Você pode aumentar o nível de log para debug para obter informações mais detalhadas.
Se essas etapas não resolverem o problema, talvez seja necessário comparar a configuração de trabalho do Netscaler com sua configuração do Nginx para identificar quaisquer diferenças que possam estar causando o problema.