对 Kerberos、委派和 SPN 的困惑

对 Kerberos、委派和 SPN 的困惑

我已经在 SO 上发布了这个问题,但其本质是介于编程和服务器配置之间,因此我也会在这里重新发布它。


我正在尝试编写一个执行 Kerberos 委派的概念验证应用程序。我已经编写了所有代码,它似乎可以正常工作(我认证正常),但生成的安全上下文未设置 ISC_REQ_DELEGATE 标志。

因此,我认为可能其中一个端点(客户端或服务器)被禁止委派。但是,我没有针对 SPN 进行身份验证。只是一个域用户针对另一个域用户。作为 SPN,InitializeSecurityContext()我正在传递“[电子邮件保护]“(这是运行服务器应用程序的用户帐户)。据我了解,域用户默认启用了委派。无论如何,我要求管理员检查,“帐户很敏感,无法委派”复选框已关闭。

我知道,如果我的服务器作为网络服务运行,并且我使用 SPN 连接到它,那么我需要 AD 中的计算机帐户选中“信任计算机进行委派”复选框(默认情况下关闭),但是……事实并非如此,对吗?或者是?

另外 - 当设置计算机帐户中的复选框时,更改会立即生效,还是必须重新启动服务器 PC 或等待一段时间?

答案1

根据我使用应用程序和 Kerberos 委派的经验,服务帐户(执行应用程序)需要为您要执行委派的服务配置一个 SPN,并且必须将其设置为受信任的委派(所有 SPN 或仅特定的 SPN,也称为约束委派)。

相关内容