c++ - 如何使用来自 SSPI 的委派凭据在 Windows 上创建 ProcessAsUser?

标签 c++ windows sspi createprocessasuser

我在 Kerberos 登录基础架构(单点登录)上工作:

  1. 通过 Kerberos key 分发认证的客户端 居中。
  2. 使用 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/

相关文章:

sql-server - SQL 服务器 : The server principal is not able to access the database under the current security context/windows authentication for the login

java - Waffle SSPI如何设置SPNEGOmutualFlag

c++ - 使用 OCILIB 调用带有输出变量的 Oracle 过程

c++ - Armadillo C++ LU 分解

c++ - 根据源文件所在的目录更改 cmake CMAKE_CXX_FLAGS

C 编程写入注册表不起作用? RegSetValueEX 错误

windows - 以编程方式(而非手动)查找 Git 在 Windows 系统上的安装路径

android - 在 Windows 中从 Jenkins 启动 android 模拟器 adb(运行仪器测试,模拟器不会出现)

c++ - 用于字节偏移量操作的更清晰的指针算术语法

python - 如何使用Python请求进行NTLM SSPI身份验证?