我在 Kerberos 登录基础架构(单点登录)上工作:
- 通过 Kerberos key 分发认证的客户端 居中。
- 使用 Kerberos 作为身份验证的主体服务服务器。
服务器程序是用 C++ 编写的。
我可以毫无问题地在我的委托(delegate)人(客户端)和我的服务委托(delegate)人(服务器)之间创建上下文。 我还将我的客户端凭据委托(delegate)给了服务器,因为我需要使用客户端用户凭据在服务器上创建一个进程。
这是我的问题,在服务器端,我有一个 SSPI 上下文,我需要使用 Windows 类型 pHandle
CreateProcessAsUser。
我不知道如何使用我的 SSPI 凭据在我的服务器上创建一个作为客户端用户的进程。
我看了一下 LsaLogonUser,它似乎做了我想做的事情(从 kerberos 用户凭据创建句柄)但我的问题是一样的,我不知道如何将 SSPI token 与此 LsaLogonUser 一起使用。
在此先感谢您的帮助
最佳答案
虽然已经很晚了,但您可以通过以下方式获得 token :
HANDLE tempHandle;
if (!QuerySecurityContextToken(hctxt, &tempHandle))
{
MyDbg("Could not obtain token for user");
}
关于c++ - 如何使用来自 SSPI 的委派凭据在 Windows 上创建 ProcessAsUser?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16854543/