输入用户凭据后,当出现基于 Windows 表单的身份验证时,系统会再次提示我输入用户名和密码。这只是不断提示,我没有在日志中看到任何有用的错误。我觉得 Microsoft 方面可能看到了一些错误,但我无权访问该服务器。
我确信这是一个常见问题。有人能给我一些指点吗?
我的配置:
server {
listen x.x.x.x:443;
server_name mle.x.x.co.uk;
# Enable SSL
ssl on;
ssl_certificate /etc/nginx/ssl/certs/x.x.co.uk-cert.pem;
ssl_certificate_key /etc/nginx/ssl/private/x.x.co.uk-key.pem;
ssl_session_timeout 5m;
# Set global proxy settings
proxy_read_timeout 360;
proxy_pass_header Date;
proxy_pass_header Server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Authorization $http_authorization;
proxy_pass_request_headers on;
proxy_pass_header Authorization;
location / {
proxy_pass https://1.1.1.1/;
allow all;
}
error_log /var/log/nginx/mle.x.x.co.uk-error.log;
access_log /var/log/nginx/mle.x.x.co.uk-access.log;
error_page 500 502 503 504 /500.html;
location = /500.html {
root /var/www/errorpages;
}
}
答案1
我一直想实现同样的目标,并在网上研究为什么会发生这种情况。据我所知,nginx 身份验证失败,因为它在每次 HTTP 请求后都会关闭代理的 TCP/IP 连接。而 NTLM 要求多个 HTTP 请求使用单个实例 TCP/IP 连接才能成功进行身份验证。