LSA_TOKEN_INFORMATION_V3 结构 (ntsecpkg.h)

LSA_TOKEN_INFORMATION_V3 结构向 LSA 令牌添加了声明支持,并包含身份验证包可以放置在版本 3 Windows 令牌对象中的信息,并已取代LSA_TOKEN_INFORMATION_V1

版本 3 Windows 令牌对象存储从身份验证包生成令牌到 本地安全机构 (LSA) 所需的所有信息。 LSA 将此信息传递到内核以创建令牌对象,并将该令牌对象的句柄返回到 LsaLogonUser 的调用方。 LSA 假定此结构的第一个成员与 LSA_TOKEN_INFORMATION_V1 结构中的成员相同。

语法

typedef struct _LSA_TOKEN_INFORMATION_V3 {
  LARGE_INTEGER       ExpirationTime;
  TOKEN_USER          User;
  PTOKEN_GROUPS       Groups;
  TOKEN_PRIMARY_GROUP PrimaryGroup;
  PTOKEN_PRIVILEGES   Privileges;
  TOKEN_OWNER         Owner;
  TOKEN_DEFAULT_DACL  DefaultDacl;
  TOKEN_USER_CLAIMS   UserClaims;
  TOKEN_DEVICE_CLAIMS DeviceClaims;
  PTOKEN_GROUPS       DeviceGroups;
} LSA_TOKEN_INFORMATION_V3, *PLSA_TOKEN_INFORMATION_V3;

成员

ExpirationTime

安全上下文变为无效的时间。 如果上下文永不过期,则使用遥远的将来的值。 操作系统内核的当前版本不强制实施此过期时间。

User

TOKEN_USER 结构,其中包含用户登录的 SID。 安全标识符 SID 值位于单独分配的内存块中。

Groups

TOKEN_GROUPS 结构,其中包含用户所属组的 SID。 这不应包括 WORLD 或其他系统定义和系统分配的 SID。 LSA 会自动添加这些内容。

每个 SID 应位于单独分配的内存块中。 TOKEN_GROUPS结构还应位于单独分配的内存块中。 所有这些内存块都应通过调用 AllocatePrivateHeap 函数进行分配。

PrimaryGroup

TOKEN_PRIMARY_GROUP 结构,用于建立用户的主组。 此值不必对应于分配给用户的 SID 之一。

此结构指向的 SID 应位于单独分配的内存块中。

此成员是必需的,必须填写。

Privileges

TOKEN_PRIVILEGES 包含分配给用户 的权限 的结构。 此特权列表将由任何本地安全策略分配的特权来增强或重写。

每个特权应位于单独分配的内存块中。 TOKEN_PRIVILEGES结构还应位于单独分配的内存块中。

如果没有要分配给用户的权限,则此成员可能设置为 NULL

Owner

TOKEN_OWNER 结构。 此成员可用于建立显式默认所有者。 通常,用户 ID 用作默认所有者。 如果需要其他值,则必须在此处指定该值。

Owner.Sid 成员可以设置为 NULL,以指示没有备用的默认所有者值。

DefaultDacl

TOKEN_DEFAULT_DACL 结构。 此成员可用于为用户建立默认保护。 如果未提供任何值,则将建立向所有人授予所有访问权限的默认保护。

DefaultDacl.DefaultDacl 成员可以设置为 NULL,以指示没有默认保护。

UserClaims

TOKEN_USER_CLAIMS 结构。 此成员存储令牌的不透明用户声明 BLOB。 UserClaims 成员可以设置为 NULL,以指示令牌中没有其他用户声明。 声明是仅限允许的实体,因此省略声明可能会限制访问。

DeviceClaims

TOKEN_DEVICE_CLAIMS 结构。 此成员存储令牌的不透明设备声明 BLOB。 DeviceClaims 成员可以设置为 NULL,以指示令牌中没有其他设备声明。 声明是仅限允许的实体,因此省略声明可能会限制访问。

DeviceGroups

TOKEN_GROUPS 结构,其中包含身份验证设备成员的组的 SID。 与用户组一样,这不应包括 WORLD 或其他系统定义或分配的 SID。 DeviceGroups 成员可以设置为 NULL,以指示不应发生复合。 如果 存在 DeviceGroup ,LSA 将添加 WORLD 和其他分配的 SID。

与用户组不同,没有主设备组的概念。

每个 SID 应位于单独分配的内存块中。 TOKEN_GROUPS结构还应位于单独分配的内存块中。

要求

   
最低受支持的客户端 Windows 8 [仅限桌面应用]
最低受支持的服务器 Windows Server 2012 [仅限桌面应用]
标头 ntsecpkg.h