NTLM 和自动匿名身份验证 IIS
Posted
技术标签:
【中文标题】NTLM 和自动匿名身份验证 IIS【英文标题】:NTLM and automatic Anonymous authentication IIS 【发布时间】:2010-11-02 12:02:24 【问题描述】:我有一个用于我们的 Intranet 的 MVC 应用程序,它使用 NTLM 身份验证,但是我希望能够允许外部用户访问该应用程序。到我们内部网的所有外部连接都通过 NAT 进行,因此有一个 IP 地址,可用于指示请求是否为外部请求。我希望所有内部用户都像他们已经做的那样接受 NTLM 身份验证,但是来自外部 IP 的任何连接都自动获得匿名身份验证(“匿名”是任何潜在的默认用户,例如标准网络服务或 IUSR_ 帐户,指定的域用户(严重当然为了其他目的而锁定)等)。结果是没有人会看到密码请求,除非是内部的并且拥有默认使用 NTLM 的浏览器。
我知道通常混合模式身份验证充其量是尴尬的,但我想知道这个特定的用例是否可能有其他解决问题的方法。我考虑过的一些可能性是:
-
在请求到达 WindowsAuthenticationModule 之前拦截请求,在 IIS、global.asax 中的事件之一或 HTTPHandler 中,以便我们可以为指定用户注入身份验证。
在 NAT 中,有一种方法可以在指定用户的 HTTP 请求中注入 NTLM 标头。
当外部用户通过不同的主机访问它时(DNS 在他们的末端进行处理以适应他们的命名约定)让 IIS 为一个简单的代理站点提供服务,该站点接受请求,将请求转发到主网站然后使用指定用户的 NTLM 将响应发送回原始请求者。
【问题讨论】:
【参考方案1】:我使用您描述的请求拦截方法开发了一个网站。这是link 的详细信息。
【讨论】:
以上是关于NTLM 和自动匿名身份验证 IIS的主要内容,如果未能解决你的问题,请参考以下文章
具有 Windows 身份验证 NTLM 的 IIS 10 上的 AEM Dispatcher - 启用 Dispatcher 缓存时的身份验证问题
使用集成 Windows 身份验证或 NTLM 登录 Jira