关于Kerberos,代理和SPN的混淆

我已经在SO上发布了这个问题 ,但是它的本质是在编程和服务器configuration之间,所以我将在这里重新发布它。


我正在尝试编写一个执行Kerberos委派的概念validation应用程序。 我已经写了所有的代码,它似乎工作(我authentication正常),但由此产生的安全上下文没有设置ISC_REQ_DELEGATE标志。

所以我在想,也许其中一个terminal(客户端或服务器)被禁止委托。 但是我没有对SPN进行身份validation。 只有一个域用户针对另一个域用户。 作为InitializeSecurityContext()的SPN,我传递了“[email protected]”(这是运行服务器应用程序的用户帐户)。 据我所知,域用户默认启用了委托。 无论如何,我要求pipe理员检查,“帐户敏感,不能委派”checkboxclosures。

我知道,如果我的服务器是作为networking服务运行,我用一个SPN连接到它,那么我需要AD中的计算机帐户有“委托信任计算机”checkbox选中(默认closures),但…事实并非如此,对吧? 还是呢?

另外 – 如果设置了计算机帐户中的checkbox,请立即进行更改,还是必须重新启动服务器PC或等待一段时间?

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