【问题标题】:Implement Kerberos authentication using C# on IIS在 IIS 上使用 C# 实现 Kerberos 身份验证
【发布时间】:2015-10-08 17:01:05
【问题描述】:

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

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

您能否详细解释一下 C# 中的 kerberos 实现(配置和代码实现)。

提前致谢。

【问题讨论】:

    标签: authentication windows-authentication kerberos ntlm


    【解决方案1】:

    Kerberos 的故障排除范围很广,如果它无法通过 NTLM,您将不得不集思广益您的配置。

    要进行测试,您可以先使用浏览器插件分析请求/响应标头(我将 Httpfox 用于 firefox),或者使用 ASP.NET 身份验证测试页面,这可能会进一步帮助您http://blogs.msdn.com/b/friis/archive/2013/01/08/asp-net-authentication-test-page.aspx

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

    • 尝试从实际的 IIS 服务器计算机登录
    • 使用 IP 地址而不是名称
    • 没有注册 SPN
    • 注册的 SPN 重复
    • SPN 注册了错误的帐户 (KRB_ERR_AP_MODIFIED)
    • 没有客户端 DNS/DC 连接
    • 客户端代理设置/本地 Intranet 区域未用于目标站点 同时检查您的配置是否有更新

    关于你的下一个问题:

    您能否详细解释一下 C# 中的 kerberos 实现(配置和代码实现)。

    它甚至更广泛,我不能比我们在这里找到的优秀文章更短:“使用 C# 和 Kerberos (POC) 在 Web 服务中进行身份验证”http://www.codeproject.com/Articles/27554/Authentication-in-web-services-using-C-and-Kerbero

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

    【讨论】:

    • 嗨 Damien,我已按照您的指示进行操作,但我收到了以下错误消息,即 0*19 KDC_ERR_PREAUTH_REQUIRED。让我知道是否缺少任何配置。
    • 如果我删除了特定 AD 用户帐户的预认证,它会再次退回到 NTLM,但这次在系统日志中找不到任何错误日志。
    • 嗨@damien,请在检查后告诉我。
    • Preauth 问题... 我建议您在服务器上启用事件日志:在特定计算机启动注册表编辑器上启用 Kerberos 事件日志。添加以下注册表值:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters 注册表值:LogLevel 值类型:REG_DWORD 值数据:0x1 如果 Parameters 子项不存在,则创建它。
    • 也尝试使用不同的客户端,检查防火墙并禁用防病毒软件
    猜你喜欢
    • 1970-01-01
    • 2011-04-16
    • 1970-01-01
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多