【发布时间】:2016-09-18 10:42:03
【问题描述】:
我使用最新的 ASP.Net Core 编写了 WebApplication。我们使用 HttpPlatformHandler 和使用匿名身份验证的 IIS 8.5 成功地托管了应用程序。我们需要使用 Kerberos 身份验证并需要使用 Kerberos 约束委派。
我们的运营管理员已设置所有必需的 SPN。我们正在使用服务帐户,并且所有 SPN 似乎都已正确注册。我们有许多具有类似设置的其他应用程序(SSRS SharePoint 等)
在 IIS 中我完成了以下步骤:
- 创建了一个“无托管代码”和“集成管道”的新 AppPool
- 我们正在使用“身份”下的服务帐号
- 创建了一个新的 Web 应用程序
- “启用”Windows 身份验证,以协商作为主要提供者
- 匿名身份验证“已禁用”
- system.webServer/security/authentication/windowsAuthentication“useAppPoolCredentials = True”和“useKernelMode = False”
System.WebServer Security Authentication Windows Authentication Screen Capture
- 我还确保在 HttpPlatform 配置下 forwardWindowsAuth 令牌设置为 True
HttpPlatform IIS Screen Capture
当我从 WebApi 执行 HttpGet 时,我的应用程序会引发“服务帐户”无法登录到服务器的身份验证错误。 这看起来很奇怪,所以我现在运行 fiddler 跟踪,发现在呈现身份验证页面之前我得到 3 401 错误。
以下结果显示 WWW-Authenticate Header (Negotiate) 似乎是 Kerberos 回复。
【问题讨论】:
标签: asp.net authentication kerberos