次の方法で共有


アクセス トークン

アクセス トークン は、プロセス またはスレッドの セキュリティ コンテキスト を記述するオブジェクトです。 トークン内の情報には、プロセスまたはスレッドに関連付けられているユーザー アカウントの ID と特権が含まれます。 ユーザーがログオンすると、システムはユーザーのパスワードをセキュリティ データベースに格納されている情報と比較して確認します。 パスワードが認証場合、システムはアクセス トークンを生成します。 このユーザーに代わって実行されるすべてのプロセスには、このアクセス トークンのコピーがあります。

システムは、アクセス トークンを使用して、スレッドがセキュリティ保護可能なオブジェクト 操作するとき、または特権を必要とするシステム タスクを実行しようとしたときに、ユーザーを識別します。 アクセス トークンには、次の情報が含まれています。

すべてのプロセスには、プロセスに関連付けられているユーザー アカウントの セキュリティ コンテキスト を記述する プライマリ トークン があります。 既定では、プロセスのスレッドがセキュリティ保護可能なオブジェクトと対話するときに、システムはプライマリ トークンを使用します。 さらに、スレッドはクライアント アカウントを偽装できます。 偽装により、スレッドはクライアントのセキュリティ コンテキストを使用してセキュリティ保護可能なオブジェクトと対話できます。 クライアントを偽装しているスレッドには、プライマリ トークンと 偽装トークンの両方が

OpenProcessToken 関数を使用して、プロセスのプライマリ トークンへのハンドルを取得します。 OpenThreadToken 関数を使用して、スレッドの偽装トークンへのハンドルを取得します。 詳細については、「偽装 する」を参照してください。

次の関数を使用して、アクセス トークンを操作できます。

機能 形容
AdjustTokenGroupsする アクセス トークン内のグループ情報を変更します。
AdjustTokenPrivileges アクセス トークンの権限を有効または無効にします。 新しい特権を付与したり、既存の権限を取り消したりすることはありません。
CheckTokenMembershipする 指定したアクセス トークンで、指定した SID が有効になっているかどうかを判断します。
CreateRestrictedToken 既存のトークンの制限付きバージョンである新しいトークンを作成します。 制限付きトークンには、無効な SID、削除された特権、制限付き SID の一覧を含めることができます。
DuplicateTokenする 既存のトークンを複製する新しい偽装トークンを作成します。
DuplicateTokenExする 既存のトークンを複製する新しいプライマリ トークンまたは偽装トークンを作成します。
GetTokenInformationする トークンに関する情報を取得します。
IsTokenRestricted トークンに制限 SID の一覧があるかどうかを判断します。
OpenProcessToken プロセスのプライマリ アクセス トークンへのハンドルを取得します。
OpenThreadToken スレッドの偽装アクセス トークンへのハンドルを取得します。
SetThreadToken スレッドの偽装トークンを割り当てるか削除します。
SetTokenInformation トークンの所有者、プライマリ グループ、または既定の DACL を変更します。

 

アクセス トークン関数は、次の構造体を使用して、アクセス トークンの部分を記述します。

構造 形容
TOKEN_CONTROL アクセス トークンを識別する情報。
TOKEN_DEFAULT_DACL スレッドによって作成された新しいオブジェクトのセキュリティ記述子でシステムが使用する既定の DACL。
TOKEN_GROUPS アクセス トークン内のグループ SID の SID と属性を指定します。
TOKEN_OWNER 新しいオブジェクトのセキュリティ記述子の既定の所有者 SID。
TOKEN_PRIMARY_GROUP 新しいオブジェクトのセキュリティ記述子の既定のプライマリ グループ SID。
TOKEN_PRIVILEGES アクセス トークンに関連付けられている特権。 また、権限が有効になっているかどうかも決定します。
TOKEN_SOURCE アクセス トークンのソース。
TOKEN_STATISTICS アクセス トークンに関連付けられている統計。
TOKEN_USER アクセス トークンに関連付けられているユーザーの SID。

 

アクセス トークン関数は、次の列挙型を使用します。

列挙型 指定
TOKEN_INFORMATION_CLASS アクセス トークンから設定または取得される情報の種類を識別します。
TOKEN_TYPE アクセス トークンをプライマリ トークンまたは偽装トークンとして識別します。