Windows集成身份validation与IIS场和子应用程序

假设以下网站布局

  1. www.contoso.com – 作为CONTOSO \ sitePool运行
  2. www.contoso.com/subSite1 – 作为CONTOSO \ subPool1运行
  3. www.contoso.com/subSite2 – 作为CONTOSO \ subPool2运行

这些页面应该使用Kerberos进行身份validation – 所以我将SPN HTTP / www.contoso.com分配给了CONTOSO \ sitePool ,这对于www.contoso.com网站来说很好。

现在我想为Kerberos的subsite1和subsite2使用。
我无法将SPN分配给池,因为它已被分配。
我也不能以HTTP / www.contoso.com / subSiteX的forms分配一个SPN,因为浏览器不知道这一点(他们只用域名计算所需的SPN)。

那么如何在子站点中使用Kerberos身份validation呢?

简而言之,您不能将Kerberos用于具有不同代理优先级的子网站。

Kerberos SPN没有超出[service] / [name]:[port / service]的规定。

您的select是:

  • 在不同的端口上运行子网,并为具有不同端口的每个服务用户创build带有委派的SPN。
  • 使用NTLM
  • 对所有子网站使用相同的应用程序池帐户

这篇文章/博客文章可能适用。

这表明使用协商会自动使用Kerberos。

这里是一个命令来禁用NTLM appcmd.exe设置configuration“mysite”部分:system.webServer /安全/身份validation/ WindowsAuthentication /-“提供程序。[VALUE ='NLM']”/提交:apphost

/-"providers.[value='NTLM']“是删除。 如果你想添加一个auth提供者,你可以这样做。

appcmd.exe set config“mysite”-section:system.webServer / security / authentication / windowsAuthentication /+"providers.[value='NTLM']“/ commit:apphost

你只需要改变 – 在提供者面前。

这里只是一个关于windows auth提供商的好文章。
http://www.iis.net/configreference/system.webserver/security/authentication/windowsauthentication/providers

祝你好运,希望这是有帮助的