LSA_TOKEN_INFORMATION_V1 構造体 (ntsecpkg.h)
LSA_TOKEN_INFORMATION_V2構造体には、認証パッケージがバージョン 2 の Windows トークン オブジェクトに配置できる情報が含まれており、LSA_TOKEN_INFORMATION_V1を超えました。
バージョン 2 のトークン情報は、ほとんどのログオンで使用されます。 構造体は LSA_TOKEN_INFORMATION_V1 構造体と同じですが、メモリ割り当てが異なる方法で処理される点が異なります。 LSA_TOKEN_INFORMATION_V2構造体は、特権、DACL、SID、およびグループ配列を使用してモノリシックに割り当てられるか、同じ割り当ての一部であるか、外部で割り当ておよび解放されることを目的としています。
バージョン 2 の Windows トークン オブジェクトには、認証パッケージから ローカル セキュリティ機関 (LSA) へのトークンの作成に必要なすべての情報が格納されます。 LSA はこの情報をカーネルに渡してトークン オブジェクトを作成し、そのトークン オブジェクトへのハンドルを LsaLogonUser の呼び出し元に返します。
構文
typedef struct _LSA_TOKEN_INFORMATION_V1 {
LARGE_INTEGER ExpirationTime;
TOKEN_USER User;
PTOKEN_GROUPS Groups;
TOKEN_PRIMARY_GROUP PrimaryGroup;
PTOKEN_PRIVILEGES Privileges;
TOKEN_OWNER Owner;
TOKEN_DEFAULT_DACL DefaultDacl;
} LSA_TOKEN_INFORMATION_V1, *PLSA_TOKEN_INFORMATION_V1;
メンバー
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 に設定できます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
Header | ntsecpkg.h |