2

使用 .Net 框架(C# 和 Powershell)访问 Kerberized HTTP 服务时,我遇到了不一致的行为。它与我们的 DNS 配置以及我们使用CNAME而不是 Kerberized 服务的 A 记录有关。Microsoft 建议的解决方法是确保您使用 A 记录作为主机名,但这在我的公司环境中不是一个选项。

我需要一个允许我为特定 URL 强制使用特定 SPN 的解决方案,确保我对 SPN 使用与 URL 相同的主机名。或者,强制使用一致的策略将 URL 解析为 SPN 的选项。

4

1 回答 1

1

与往常一样,一旦您知道要查找的内容,就很容易找到解决方案;-) 在此示例中,我在端口 8080 上使用 HTTPS Web 服务:

C#:

System.Net.AuthenticationManager.CustomTargetNameDictionary
    .Add("https://my-service.tld:8080/", "HTTP/my-service.tld");

电源外壳:

[System.Net.AuthenticationManager]::CustomTargetNameDictionary.
    Add("https://my-service.tld:8080/", "HTTP/my-service.tld")

不要忘记尾部的斜线。:8080如果使用端口 80,请删除。

参考:

于 2016-09-28T07:23:47.027 回答