如何使用 nginx 代理到需要 NTLM 身份验证的主机?

如何使用 nginx 代理到需要 NTLM 身份验证的主机?

基本上与以下问题相同如何使用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。我创建了一个能够提供类似功能的自定义模块

gabihodoroaga/nginx-ntlm 模块

还有一篇关于此问题的博客文章hodo.dev

答案3

也许控制论如果您只需要使用单个帐户,就可以满足您的需求,除非您希望系统提示输入凭据。

相关内容