【问题标题】:ASP.NET MVC intermittent 401 authorization errorsASP.NET MVC 间歇性 401 授权错误
【发布时间】:2012-04-02 12:54:27
【问题描述】:

我有一个 ASP.NET MVC Intranet 站点,它专门使用 Windows 身份验证 (Kerberos) 和传递身份验证。它设置为使用使用网络服务标识的应用程序池(v4/集成)。该网站在托管在另一台机器(SAMBA NAS box)上的网络共享之上提供了一个漂亮的 UI。偶尔(通常是当有人有一段时间没有访问该站点时),客户端在 MVC 代码尝试获取远程 UNC 共享上的目录信息 (System.IO.Directory.GetLastWriteTime) 时收到 401 授权错误. IIS 机器上的事件日志在同一时间点捕获安全审核失败:

+ 系统 - 提供者 [名称] Microsoft-Windows-安全-审计 [指导] {54849625-5478-4994-a5ba-3e3b0328c30d} 事件 ID 4625 版本 0 0级 任务 12544 操作码 0 关键字 0x8010000000000000 - 创建时间 [系统时间] 2012-03-17T00:43:50.522Z 事件记录 ID 398873 相关性 - 执行 [进程ID] 696 [线程ID] 792 渠道安全 电脑 lvtloweb1.acme.com 安全 - 事件数据 SubjectUserSid S-1-0-0 主题用户名 - 主题域名 - SubjectLogonId 0x0 TargetUserSid S-1-0-0 目标用户名 目标域名 状态 0xc000006d 失败原因 %%2304 子状态 0xc0000133 登录类型 3 LogonProcessName Kerberos AuthenticationPackageName Kerberos 工作站名称 - 传输服务 - LmPackageName - 密钥长度 0 进程 ID 0x0 进程名称 - IP地址 - 端口 -

奇怪的是,如果您一遍又一遍地坐下来刷新页面,它通常会在大约一分钟内通过 401 错误。有人对如何解决此类问题有任何想法吗?哦,是的,IIS 机器托管在 VM 中。来宾操作系统是 Windows Server 2008 Enterprise 6.0.6002 Service Pack 2。

【问题讨论】:

  • 是 IIS 执行实际身份验证还是您的 MVC 应用程序?在使用 MADAM 进行身份验证时,我在 IIS 中检查了“集成 Windows 身份验证”时遇到了类似的问题。
  • 是的,在 IIS 站点上启用了集成 Windows 身份验证。什么是 MADAM?
  • 某种身份验证机制杂耍库:msdn.microsoft.com/en-us/library/aa479391.aspx#madam_topic5 在我的情况下,我只是未能完全遵循配置说明:/
  • 很遗憾,这可能不相关。
  • 你指的透传认证是什么?是 Kerberos 委托还是微软 S4U 扩展?您是否在 IIS 的缓存中维护用户的 TGT?

标签: asp.net iis kerberos


【解决方案1】:

基思,

由于它似乎最常发生在用户空闲后,我倾向于某种可能会使您的服务器凭据无效的事件(即会话超时)。我假设一台服务器,因为你没有提到任何网络农场。

我的一部分人认为您可能已经敲定了会话超时角度。除非您确信用户会“自动验证”并且在操作中超时不会导致它失败。也就是说,我不确定我是否会完全相信这种情况。为了至少消除这种可能性,我将添加一个例程,在该操作开始之前记录有关当前会话/凭据的信息。即使用户“总是登录”假设他们在他们的计算机上,我也看到了 VPN、代理服务器、服务器双跳、“受信任区域”的 IE 配置和“内部网”设置的奇怪问题。即使是突然改变其到服务器的路由的计算机也可能导致问题。我不确定虚拟机上的网络仿真是否会发挥作用,但谁知道呢。

这是一篇关于 IE 的“入门”文章,它是一种复杂的身份验证方法,以及它在客户端应用程序访问您的 Intranet MVC 应用程序时所起的作用。 (深入研究 IE 如何在 Windows AD 环境中自动进行身份验证是值得的。)

http://support.microsoft.com/kb/258063/en-us

这是由于双跳导致 401 导致的相关问题。我还提供了一个指向另一个很好的“入门页面”的链接,用于调查这些类型的问题。

http://social.msdn.microsoft.com/Forums/en/sqlreportingservices/thread/6d1604e5-e739-41e4-89a5-c6681bff2e61

http://blogs.technet.com/b/askds/archive/2008/06/13/understanding-kerberos-double-hop.aspx

抱歉,如果您已经知道以上任何内容或我的回复的一般性质。如果没有实际的网络访问权限或能够将日志记录添加到您的代码中,这很困难。我希望我已经为您指明了正确的方向。

【讨论】:

  • 不客气,如果您没有基于其中一些测试获得更多信息,我很想听到更多信息以了解更多信息以了解故障排除方向。
猜你喜欢
  • 2014-05-13
  • 2019-09-07
  • 2015-02-13
  • 2013-11-28
  • 1970-01-01
  • 1970-01-01
  • 2020-04-25
  • 2011-11-16
  • 2023-03-03
相关资源
最近更新 更多