windows - 将 Kerberos 与 DCOM 结合使用时是否需要 SPN?

标签 windows security kerberos dcom

我使用 DCOM 在 Windows 网络上提供各种应用程序服务,使用 Kerberos 处理身份验证。系统通常工作正常,但我在从单独的(受信任的)域访问服务时遇到问题。特别是,该服务无法回调客户端应用程序,并收到错误“发生了安全包特定错误”。另外,如果我调整服务以明确要求 Kerberos 身份验证(而不是使用 SNEGO/negotiate),则客户端甚至无法调用服务器(再次收到“发生了安全包特定错误”)。

令人困惑的是,事情已经运行了很多年,没有出现任何问题。然而,与我们之前所做的相比,这里有一些不同之处。其一,所涉及的服务器运行的是Windows 2008,我以前没有使用过。此外,如上所述,仅当从单独域的帐户访问该服务时才会发生错误,并且以前的使用从未尝试过这样做。

现在问题是:我没有为此 DCOM 服务使用 SPN(服务主体名称),但一些错误和事件日志让我认为这可能是问题所在。然而,我发现的所有文档都不清楚这是否正确,或者如果我确实需要它,我将如何设置 SPN。 有人确切知道 SPN 是否是我所缺少的吗?如果是这样,您能指出我应该如何完成此操作吗?

其他详细信息:

对于服务器设置为强制Kerberos身份验证的场景,开启Extended RPC Debugging提供了一些额外的线索。客户端可以使用 CoCreateInstanceEx 成功连接,但对服务接口(interface)的调用失败,如上所述。 RPC 错误记录显示位置 140 处出现错误,错误代码为 0x80090303(“指定的目标未知或无法访问”),该记录的第三个参数是空字符串。这表明缺少 SPN 是罪魁祸首。

最佳答案

就其值(value)而言,Kerberos 根据定义需要 SPN。您也许可以利用内置的 SPNS (host/) 和主机暗示的各种风格(此别名翻译存储在 AD 中,但对于我来说,我似乎找不到列出其中的文章这是找到的)。

我首先查看跨域身份验证 - 使用 kerberos 可能会很棘手。我首先打开完整kerberos logging在客户端和服务器上,看看是否会出现任何结果。

关于windows - 将 Kerberos 与 DCOM 结合使用时是否需要 SPN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/504167/

相关文章:

windows - Flipview 中的 Webview 无法正常工作

java - 组件上的 EJB 调用因 java.security.AccessControlException 失败

java - 如何使用通用访问卡连接到 HTTPS 服务器

ssl - 带有 https 的 IBM WebSphere Portal 6.1 上的 SPNEGO

C# WPF 获取错误 - System.InvalidOperationException :

c++ - 将交互式控制台附加到嵌入式 python 脚本

security - 可以通过发送 NULL 字节来绕过 recaptcha 吗?

c# - 如何设置 .NET WindowsAuthentication - 当我希望它使用实际用户时,名称总是显示为 "IIS APPPOOL\Classic .NET AppPool"

authentication - 代表用户安全访问 iCloud(服务器到服务器)

Java - 如何将 PDF 打印到特定打印机?