如何在服务器上登录用户并运行给定Kerberos票证的进程

时间:2018-09-13 06:48:47

标签: ssh kerberos windows-authentication gssapi sspi

在使用Kerberos的Windows上,身份验证和登录如何工作?我要实现的是在服务器上登录用户并为该用户运行一个进程。

首先,我在客户端上创建Kerberos票证并将其发送到服务器。在服务器上,我不知道用于给用户提供凭单的用户登录的API。 当然,我可以使用AcceptSecurityContext(SSPI)接受安全上下文,但是不会启动登录。

我认为Windows的某些SSH实现可以做到这一点。但是我想知道他们可能以及如何使用什么API?

1 个答案:

答案 0 :(得分:1)

有几种方法可以执行此操作。您确实需要在票证上致电AcceptSecurityContext以获得安全上下文。这就是引导Windows中所有内容的原因。从那里您可以做几件事。

通常,您调用ImpersonateSecurityContext,以便当前线程了解它认为需要的用户。之后,您可以调用QuerySecurityContextToken获取Windows访问令牌句柄。使用此句柄,然后调用CreateProcessAsUser。您还可以告诉它执行必要的操作,例如在需要时加载配置文件。

这实际上并没有像LogonUserX那样进行登录,但是它实际上以该用户身份启动了一个过程,这通常是人们希望完成的过程。