NTLM和自动匿名身份验证IIS

时间:2010-11-02 12:02:24

标签: asp.net authentication iis-7 proxy ntlm

我有一个使用NTLM身份验证的Intranet的MVC应用程序,但我希望能够允许外部用户访问该应用程序。我们内部网的所有外部连接都来自NAT,因此有一个IP地址,可用于表示请求是否为外部。我希望所有内部用户都进行NTLM身份验证,因为他们已经这样做,但来自外部IP的任何连接都会自动获得匿名身份验证(“匿名”是任何潜在的默认用户,例如标准网络服务或IUSR_帐户,指定的域用户(严重)当然,为了其他目的而被锁定)等)。结果是没有人应该看到密码请求,除非内部并且浏览器默认使用NTLM。

我知道通常混合模式身份验证充其量只是尴尬,但我想知道这个特定的用例是否可能有其他方法解决问题。我考虑过的一些可能性是:

  1. 在IIS中访问WindowsAuthenticationModule之前拦截请求,global.asax中的一个事件或HTTPHandler,以便我们可以为指定用户注入身份验证。
  2. 在NAT中有一种方法可以在HTTP请求中为指定用户注入NTLM头。
  3. 当外部用户通过不同的主机(DNS在其末端处理以符合其命名约定)访问它时,获取IIS以提供请求的简单代理站点,将请求转发到主网站使用指定用户的NTLM然后将响应发送回原始请求者。

1 个答案:

答案 0 :(得分:1)

我使用您描述的请求拦截方法开发了一个网站。这是一个包含详细信息的link