Windows 身份验证 KRB5KRB_AP_ERR_MODIFIED

Windows 身份验证 KRB5KRB_AP_ERR_MODIFIED

首先我要说的是,我已经研究这个问题大约一个半星期了,但我还是搞不清楚。我想我已经接近答案了,但到目前为止,每次我这么想,我都错了。我查看了所有我能想到的论坛帖子,但都无济于事。

我只是想让我的 Web 应用程序及其相应的服务使用 Windows 身份验证,以便在代码中,我可以在不提示他们的情况下提取当前登录用户的凭据,并通过我的服务将它们传递给我的数据库存储过程。

听起来很简单,对吧?

错误的!

WireShark运行,我不断收到回复KRB_ERROR (30)进一步详细信息如下:

错误代码:KRB5KRB_AP_ERR_MODIFIED (41)

我明天会试试,但我想我现在就发布,以防有​​人知道为什么我一直得到KRB5KRB_AP_ERR_MODIFIED根据我当前的设置出现的错误,我将在下面列出。


这是我当前的设置:

Windows Server 2008 R2 标准 SP1 64 位 4.00 GB RAM

为了方便阅读,我们将此服务器称为DALDEP01.测试.本地,其中有以下内容:

  • MS SQL 服务器 2008 R2它有一个数据库,我们称之为部署

    1. 只有一个用户帐户可以访问部署db 是TEST\部署服务

    2. 此用户帐户是数据读取器/数据写入器并已获得执行

  • IIS 7.5拥有 2 个网站:

    1. 部署.服务针对部署D b。

    2. 部署.Web举办Silverlight 4应用程序调用部署.服务

    3. 两个站点的配置相同(因为我不确定还有什么其他方法可以做到这一点)

      • 他们使用部署应用程序池在自定义用户帐户下运行TEST\部署服务

      • 匿名身份验证是已禁用

      • Windows 身份验证是已启用

        1. 扩展保护接受

        2. 启用内核模式身份验证已检查

        3. 提供者只是谈判因为我只想要 Kerberos,所以我删除了 NTLM

  • 服务提供者名称配置如下:

          目录:\>setspn -l 部署vc

          为 CN=DeploySvc、OU=Services Accounts、DC=test、DC=local 注册的 ServicePrincipalNames:
                  HTTP/deploy.test.local
                  HTTP/deploy

答案1

重复的 SPN 可能会导致此问题...

setspn -X

...将显示您的域中是否存在任何重复项,您需要删除有问题的域。或者您可以使用SPN 查询实用程序。我还假设您已经修改了 AD 中服务帐户的委派选项卡,以便它可以被信任进行委派?

答案2

我最近遇到了同样的问题。

原来是与 SPN 有关。SPN 已映射到 SQL Server 的计算机帐户,而不是映射到运行 SQL Server 的服务帐户。

我们删除并重新创建了 SPN - 映射到主机上运行 SQL Server 2012R2 的服务帐户,一切顺利。

相关内容