【发布时间】: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?