我正在编写一个支持Kerberos的服务器,它需要接受来自客户端的委派凭据,冒充该客户端,并与充当客户端的远程服务器执行另一次kerberos对话。
目前,服务器使用AcceptSecurityContext完成与客户端的协商。在为标志调用QuerySecurityContext之后,它们同时指示ASC_RET_DELEGATE和ASC_RET_MUTUAL_AUTH。然后我调用成功的ImpersonateSecurityContext(SEC_E_OK)。
此时,我有点不清楚该做什么。要充当客户端,我会假设我应该在没有SEC_WINNT_AUTH_IDENTITY结构的情况下调用AcquireCredentialsHandle来获取当前“线程”的默认凭据,这应该是我刚刚冒充的那些。但是,此调用始终返回SEC_E_NO_CREDENTIALS。
我似乎无法找到任何代码示例并执行此操作并运行委托/模拟检查表,所有这些都会在Active Directory中正确检查“框”。
我应该做什么而不是我做错了什么?我可以按要求提供更多信息,只是不确定会是什么。