基本上与以下问题相同如何使用nginx代理到需要身份验证的主机?但这次使用 NTLM 身份验证。不幸的是,公司的 IIS 不接受基本身份验证。
我需要配置 nginx,以便对所有代理请求使用单个用户域帐户。因此,客户端不应收到任何凭据提示。
答案1
Nginx 客服确认,nginx 目前不支持对 ntlm 进行身份验证,只能使用 NGINX Plus 将该身份验证代理到上游服务器
答案2
根据 nginx 文档:
upstream http_backend {
server 127.0.0.1:8080;
ntlm;
}
允许使用 NTLM 身份验证代理请求。一旦客户端发送带有以“Negotiate”或“NTLM”开头的“Authorization”标头字段值的请求,上游连接就会绑定到客户端连接。后续客户端请求将通过相同的上游连接进行代理,同时保留身份验证上下文。
“ntlm”选项仅适用于 Nginx Plus。我创建了一个能够提供类似功能的自定义模块
还有一篇关于此问题的博客文章hodo.dev
答案3
也许控制论如果您只需要使用单个帐户,就可以满足您的需求,除非您希望系统提示输入凭据。