Zugriffstoken
Ein Zugriffstoken ist ein Objekt, das den Sicherheitskontext eines Prozesses oder Threads beschreibt. Die Informationen in einem Token umfassen die Identität und die Berechtigungen des Benutzerkontos, das dem Prozess oder Thread zugeordnet ist. Wenn sich ein Benutzer anmeldet, überprüft das System das Kennwort des Benutzers, indem es mit informationen vergleicht, die in einer Sicherheitsdatenbank gespeichert sind. Wenn das Kennwort authentifiziert ist, erzeugt das System ein Zugriffstoken. Jeder Prozess, der im Namen dieses Benutzers ausgeführt wird, verfügt über eine Kopie dieses Zugriffstokens.
Das System verwendet ein Zugriffstoken, um den Benutzer zu identifizieren, wenn ein Thread mit einem sicherungsfähigen Objekt interagiert oder versucht, eine Systemaufgabe auszuführen, die Berechtigungen erfordert. Zugriffstoken enthalten die folgenden Informationen:
- Die Sicherheits-ID (SID) für das Konto des Benutzers
- SIDs für die Gruppen, deren Mitglied der Benutzer ist
- Eine Anmelde-SID, die die aktuelle Anmeldesitzung identifiziert
- Eine Liste der Berechtigungen , die entweder dem Benutzer oder den Gruppen des Benutzers zugewiesen sind.
- Eine Besitzer-SID
- Die SID für die primäre Gruppe
- Die Standard-DACL , die das System verwendet, wenn der Benutzer ein sicherungsfähiges Objekt erstellt, ohne einen Sicherheitsdeskriptor anzugeben.
- Die Quelle des Zugriffstokens
- Ob es sich bei dem Token um ein primäres Token oder ein Identitätswechseltoken handelt
- Eine optionale Liste von einschränkenden SIDs
- Aktuelle Identitätswechselebenen
- Sonstige Statistiken
Jeder Prozess verfügt über ein primäres Token , das den Sicherheitskontext des dem Prozess zugeordneten Benutzerkontos beschreibt. Standardmäßig verwendet das System das primäre Token, wenn ein Thread des Prozesses mit einem sicherungsfähigen Objekt interagiert. Darüber hinaus kann ein Thread die Identität eines Clientkontos annehmen. Der Identitätswechsel ermöglicht es dem Thread, mithilfe des Sicherheitskontexts des Clients mit sicherungsfähigen Objekten zu interagieren. Ein Thread, der die Identität eines Clients angibt, verfügt sowohl über ein primäres Token als auch über ein Identitätswechseltoken.
Verwenden Sie die OpenProcessToken-Funktion , um ein Handle für das primäre Token eines Prozesses abzurufen. Verwenden Sie die OpenThreadToken-Funktion , um ein Handle für das Identitätswechseltoken eines Threads abzurufen. Weitere Informationen finden Sie unter Identitätswechsel.
Sie können die folgenden Funktionen verwenden, um Zugriffstoken zu bearbeiten.
Funktion | BESCHREIBUNG |
---|---|
AdjustTokenGroups | Ändert die Gruppeninformationen in einem Zugriffstoken. |
AdjustTokenPrivileges | Aktiviert oder deaktiviert die Berechtigungen in einem Zugriffstoken. Es gewährt keine neuen Berechtigungen oder widerruft vorhandene Berechtigungen. |
CheckTokenMembership | Bestimmt, ob eine angegebene SID in einem angegebenen Zugriffstoken aktiviert ist. |
CreateRestrictedToken | Erstellt ein neues Token, das eine eingeschränkte Version eines vorhandenen Tokens ist. Das eingeschränkte Token kann über deaktivierte SIDs, gelöschte Berechtigungen und eine Liste mit eingeschränkten SIDs verfügen. |
DuplicateToken | Erstellt ein neues Identitätswechseltoken, das ein vorhandenes Token dupliziert. |
DuplicateTokenEx | Erstellt ein neues primäres Token oder Identitätswechseltoken, das ein vorhandenes Token dupliziert. |
GetTokenInformation | Ruft Informationen zu einem Token ab. |
IsTokenRestricted | Bestimmt, ob ein Token über eine Liste einschränkender SIDs verfügt. |
OpenProcessToken | Ruft ein Handle für das primäre Zugriffstoken für einen Prozess ab. |
OpenThreadToken | Ruft ein Handle für das Identitätswechsel-Zugriffstoken für einen Thread ab. |
SetThreadToken | Weist einem Thread ein Identitätswechseltoken zu oder entfernt es. |
SetTokenInformation | Ändert den Besitzer, die primäre Gruppe oder die Standard-DACL eines Tokens. |
Die Zugriffstokenfunktionen verwenden die folgenden Strukturen, um die Teile eines Zugriffstokens zu beschreiben.
Struktur | BESCHREIBUNG |
---|---|
TOKEN_CONTROL | Informationen, die ein Zugriffstoken identifizieren. |
TOKEN_DEFAULT_DACL | Die Standard-DACL, die das System in den Sicherheitsbeschreibungen neuer Objekte verwendet, die von einem Thread erstellt wurden. |
TOKEN_GROUPS | Gibt die SIDs und Attribute der Gruppen-SIDs in einem Zugriffstoken an. |
TOKEN_OWNER | Die Standard-Besitzer-SID für die Sicherheitsbeschreibungen neuer Objekte. |
TOKEN_PRIMARY_GROUP | Die standardmäßige primäre Gruppen-SID für die Sicherheitsbeschreibungen neuer Objekte. |
TOKEN_PRIVILEGES | Die Berechtigungen, die einem Zugriffstoken zugeordnet sind. Bestimmt auch, ob die Berechtigungen aktiviert sind. |
TOKEN_SOURCE | Die Quelle eines Zugriffstokens. |
TOKEN_STATISTICS | Statistiken, die einem Zugriffstoken zugeordnet sind. |
TOKEN_USER | Die SID des Benutzers, der einem Zugriffstoken zugeordnet ist. |
Die Zugriffstokenfunktionen verwenden die folgenden Enumerationstypen.
Enumerationstyp | Bedeutung |
---|---|
TOKEN_INFORMATION_CLASS | Gibt den Typ der Informationen an, die festgelegt oder aus einem Zugriffstoken abgerufen werden. |
TOKEN_TYPE | Identifiziert ein Zugriffstoken als primäres Token oder Identitätswechseltoken. |