相关疑难解决方法(0)

为用户(S4U)令牌创建服务

Windows 任务计划程序可以创建使用特定用户的帐户运行的任务,而无需存储用户密码。他们称之为“S4U”,即为用户服务。这应该类似于调度程序为当前用户创建这样的令牌,并可以使用它在该用户帐户下运行计划的进程。他们声称无法使用该系统访问网络或加密资源。调度程序本身使用 SYSTEM 帐户运行才能工作。这是一篇描述它的文章。其中的相关引用:

TASK_LOGON_S4U 是另一个提供更安全替代方案的选项。它利用用户 (S4U) 登录服务代表指定用户运行任务,但无需存储密码。由于任务计划程序在本地系统帐户内运行,因此它可以创建 S4U 登录会话并接收令牌,该令牌不仅可用于识别,还可用于在本地计算机上进行模拟。通常,S4U 令牌仅用于识别。

我需要在我的应用程序中使用此身份验证方案,但不能让任务计划程序执行此操作,而是需要自己执行此操作,因为我需要它用于任意数量的帐户。每当用户向我的应用程序注册任务时,任何后续任务都必须在同一用户下运行。但由于它们不能重叠,所以我需要自己进行序列化。

我找不到关于这个“S4U”的任何信息。我如何在我的应用程序中实现它?首选 C#,但 WINAPI 和 C 也可以。

更新:这是我尝试过的,但它不起作用。

// The WindowsIdentity(string) constructor uses the new
// Kerberos S4U extension to get a logon for the user
// without a password.
WindowsIdentity wi = new WindowsIdentity(identity);
WindowsImpersonationContext wic = null;
try
{
  wic = wi.Impersonate();
  // Code to access network resources goes here.
}
catch()
{
  // Ensure that an exception is not propagated higher in the call …
Run Code Online (Sandbox Code Playgroud)

windows security

6
推荐指数
1
解决办法
8449
查看次数

标签 统计

security ×1

windows ×1