Windows身份validationKRB5KRB_AP_ERR_MODIFIED

让我先说一下,我已经在这个问题上讨论了大约一个半星期了,而且我无法弄清楚。 我觉得我很接近,但是每次我想到目前为止,我错了。 我看过每一个论坛post,我可以想到search,没有任何工作。

我只是试图让我的Web应用程序及其各自的服务使用Windows身份validation,以便在代码中,我可以拉取当前login的用户的凭据,而不会提示他们,并通过我的服务传递给我的数据库存储过程。

听起来很简单吧?

错误!

随着WireShark的运行,我不断收到KRB_ERROR(30)的回应,详情如下:

error_code:KRB5KRB_AP_ERR_MODIFIED(41)

明天我会试试这个 ,但是我想现在就发布信息,以防有人知道为什么我不断收到KRB5KRB_AP_ERR_MODIFIED错误, 这个错误是基于我将在下面列出的当前设置。


这是我目前的设置:

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

为了这篇文章,我们将调用这个服务器DALDEP01.TEST.LOCAL ,并在其上,我有以下几点:

  • MS SQL Server 2008 R2有一个数据库,我们将调用Deploy

    1. 只有一个用户帐户可以访问部署数据库TEST \ DeploySvc

    2. 这个用户帐户是一个datareader / datawriter并已被授予EXEC

  • 承载2个网站的IIS 7.5

    1. Deploy数据库进行CRUD操作的Deploy.Service

    2. 承载调用Deploy.ServiceSilverlight 4应用程序的Deploy.Web

    3. 这两个网站configuration相同(因为我不知道该怎么办)

      • 他们使用在自定义用户帐户TEST \ DeploySvc下运行的DeployAppPool

      • 匿名身份validation已禁用

      • Windows身份validation已启用

        1. 扩展保护是接受

        2. 启用内核模式authentication检查

        3. 提供商只是协商因为我只想要Kerberos,所以我删除了NTLM

  • SPNconfiguration如下:

C:\> setspn -l deploysvc

注册的ServicePrincipalNames为CN = DeploySvc,OU =服务帐户,DC =testing,DC =本地:
HTTP / deploy.test.local
HTTP /部署

重复的SPN可能导致此问题…

setspn -X 

…会告诉你,如果有任何重复的域名,你将需要删除有问题的。 或者你可以使用SPN查询工具 。 我还假设你已经在AD中修改了服务帐户的代理选项卡,这样就可以信任委派了?

我最近有同样的问题。

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

我们删除并重新创build了映射到在主机上运行SQL Server 2012 R2的服务帐户的SPN,所有内容都是肉汁。