Authentication 在IIS上使用C#实现Kerberos身份验证

Authentication 在IIS上使用C#实现Kerberos身份验证,authentication,windows-authentication,kerberos,ntlm,Authentication,Windows Authentication,Kerberos,Ntlm,我已经在IIS中配置了kerberos设置,但它仍然会回退到NTLM身份验证 您能告诉我kerberos的正确故障排除方法吗 您能解释一下c#中kerberos实现的细节(配置和代码实现)吗 提前谢谢 Kerberos很难解决问题,如果它无法解决NTLM问题,您必须集体讨论您的配置 要进行测试,您可以从使用浏览器插件(我使用Httpfox for firefox)分析请求/响应头开始,或者使用ASP.NET身份验证测试页面开始,这可能会进一步帮助您 请记住,如果出现以下情况,kerberos可能

我已经在IIS中配置了kerberos设置,但它仍然会回退到NTLM身份验证

您能告诉我kerberos的正确故障排除方法吗

您能解释一下c#中kerberos实现的细节(配置和代码实现)吗


提前谢谢

Kerberos很难解决问题,如果它无法解决NTLM问题,您必须集体讨论您的配置

要进行测试,您可以从使用浏览器插件(我使用Httpfox for firefox)分析请求/响应头开始,或者使用ASP.NET身份验证测试页面开始,这可能会进一步帮助您

请记住,如果出现以下情况,kerberos可能会失败:

  • 尝试从实际的IIS服务器计算机登录
  • 使用IP地址而不是名称
  • 未注册SPN
  • 已注册重复的SPN
  • 针对错误帐户注册的SPN(KRB_ERR_AP_MODIFIED)
  • 没有客户端DNS/DC连接
  • 客户端代理设置/本地Intranet区域未用于目标站点 还要检查您的配置以获取更新
关于你的下一个问题:

您能解释一下c#中kerberos实现的细节(配置和代码实现)吗

更广泛的是,我不能比我们在这里找到的优秀文章更短:“使用C#和Kerberos(POC)的web服务中的身份验证”


当您获得有关错误的更多详细信息时,请进行更新。

嗨,Damien,我已按照您的指示执行了操作,但我已收到以下错误消息,需要0*19 KDC_ERR_PREAUTH_。如果缺少任何配置,请告诉我。如果我已删除特定AD用户帐户的预验证,它将再次返回到NTLM,但这次在系统日志中找不到任何错误日志。Hi@damien请在检查后通知我。预验证问题。。。我建议您在服务器上启用事件日志:在特定计算机上启用Kerberos事件日志启动注册表编辑器。添加以下注册表值:HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters注册表值:日志级别值类型:REG\U DWORD值数据:0x1如果Parameters子项不存在,请创建它。还可以尝试使用其他客户端,检查防火墙并禁用防病毒