iis – 使用401的Kerberos身份验证失败
我们在
Windows 2008服务器上的IIS 7中部署了一个.NET MVC 3应用程序(我们称之为PROD).该应用程序启用了匿名和Windows身份验证 – 所有其他人都被禁用. applicationHost.config中指定的身份验证提供程序按此顺序为Negotiate和NTLM.
最近我们开始在这个应用程序中遇到身份验证问题.通过“启用集成Windows身份验证”选项连接IE的用户(与服务器位于不同的域)选中“未授权.HTTP错误401.请求的资源需要用户身份验证”.消息,即使他们提供有效的凭据.从Firefox访问应用程序时,不会出现问题.此外,当使用IE“启用集成Windows身份验证”未选中时,一切正常. 从我读过的有关Internet上类似问题的内容来看,我发现我们在Kerberos配置不正确时遇到了一些问题.事实证明,NTLM身份验证工作得很好.我检查了SPN并且它们似乎配置正确(有默认配置,因为我们的应用程序正由服务器的netBios名称访问). 有趣的是,我们有另一台服务器(让我们称之为DEV),它们拥有完全相同的应用程序,并且位于完全相同的域中,并且具有相同的身份验证和身份验证提供程序配置,并且应用程序池在相同的帐户下运行,并且身份验证仅适用于精细.唯一的区别是PROD最近安装了.NET 4,但我不认为这可能是一个问题.此外,PROD在IIS中的以下虚拟目录中托管此应用程序:Sites / XYZ / XYZ,以便您通过URL http:// server:8666 / XYZ访问该站点. DEV上的应用程序直接在Sites / XYZ中托管在IIS中,并通过URL http:// server2:8666访问. 你能告诉我还能检查一下吗?我尝试打开Kerberos日志记录但在尝试访问应用程序后在事件查看器中找不到日志.我没有其他想法在哪里查看和检查什么.
首先,我要确认这是从客户端发生的,其中IE显示该站点位于“受信任的站点”区域,并且“受信任的站点”区域配置为“使用当前用户名和密码自动登录”.
接下来,我怀疑http授权标头大小可能超过IIS限制.由于IIS限制实际上非常低,因此集成Kerberos授权非常容易受到此问题的影响,并且它不需要许多组成员资格来使令牌超过限制. 每个请求都包含http授权标头中的用户Kerberos令牌.因为令牌是编码的,所以它通常比实际使用的内存大得多. 您可以使用以下文档增加值: Windows的Http.sys注册表设置 我会使用以下值: MaxRequestBytes – 设置为1048576 另一个有用的实用程序DelegConfig.您可以将其作为应用程序放在任何网站上,并连接以获得有关如何配置Kerberos身份验证的有用报告.这将需要作为受害者帐户(或适当配置的测试帐户,以显示受害者域中的症状)进行测试. http://blogs.iis.net/brian-murphy-booth/archive/2007/03/09/delegconfig-delegation-configuration-reporting-tool.aspx 您可能还需要查看: 配置Internet Information Services上承载的Web应用程序时如何使用SPN 特别: “在Active Directory中,验证帐户是否敏感且无法委派复选框,以便访问该应用程序的用户清除.” “验证属于Kerberos进程的所有计算机是否具有一致的名称解析并通过Kerberos信任进行连接.例如,验证Kerberos进程中涉及的计算机是在同一个林中还是跨林的一部分Kerberos信任.“ “验证令牌大小是否超过为MaxTokenSize属性设置的值.” (MaxTokenSize应设置为65535). Internet Explorer 6无法使用Kerberos身份验证协议连接到使用非标准端口的网站 以下文章中还有一些很好的提示. https://blogs.msdn.com/b/friis/archive/2009/12/31/things-to-check-when-kerberos-authentication-fails-using-iis-ie.aspx 特别是,使用NetMon或KerbSpy检查客户端是否连接到预期的SPN. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- “Microsoft”有一个用于解决Exchange问??题的在
- Windows 下安装 Node.js
- Windows 8应用程序(html和Javascript):从图片库
- rest – 无法以编程方式启动Windows Azure VM
- windows – 如何在Google Chrome中标题栏中绘制按
- .net – Windows Azure Worker角色没有超过第一行
- actionscript-3 – Windows上是否有针对Actionsc
- 如何在Windows控制台中的python中打印unicode字符
- 在GAC之外的COM应用程序中注册.NET程序集
- 对于所有多处理示例,Windows上的Python 2.7“断言