1

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

所以我在想也许端点之一(客户端或服务器)被禁止委托。但是,我没有针对 SPN 进行身份验证。只有一个域用户对抗另一个域用户。作为 SPN,InitializeSecurityContext()我将传递“someuser@mydomain.lan”(这是运行服务器应用程序的用户帐户)。据我了解,域用户默认启用委派。无论如何,我要求管理员检查,并且“帐户敏感且不能委派”复选框已关闭。

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

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

4

1 回答 1

2

根据这个ISC_REQ_DELEGATE 仅在您使用约束委派时才被忽略。我很确定要发生约束委派,您必须明确说明允许帐户在 Active Directory 中委派的服务(AD 管理单元中的用户或计算机的委派选项卡)。

我不确定使用 UPN 与 SPN 的规则。您是否尝试过打开Kerberos 事件日志并查看事件日志?这些消息通常是神秘的,但通常是可以破译的。

您对网络服务场景的描述是准确的。默认情况下,对委派的信任是关闭的,但 NETWORK SERVICE 可能有权自行注册 SPN(我认为这可以由组策略确定)。

当您勾选该框时,更改会立即发生,但可能必须在域中的所有域控制器中传播(我通常在具有单个 DC 的测试域中进行测试)。所以,重启你的服务应用程序就足够了,你不需要重启。

路边票驻留在客户端计算机上。这些有到期时间,可以使用 klist 或 kerbtray 手动刷新。

于 2010-03-18T19:11:46.747 回答