Zugriffstoken
Ein Zugriffstoken ist ein Objekt, das den Sicherheitskontext eines Prozesses oder Threads beschreibt. Die Informationen in einem Token umfassen die Identität und 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 verglichen wird, die in einer Sicherheitsdatenbank gespeichert sind. Wenn das Kennwort authentifiziertist, erzeugt das System ein Zugriffstoken. Jeder Prozess, der im Auftrag 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:
- Der Sicherheitsbezeichner (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 vom Benutzer oder von den Gruppen des Benutzers gehalten werden
- Eine Besitzer-SID
- Die SID für die primäre Gruppe
- Die standardmäßige DACL-, die das System verwendet, wenn der Benutzer ein sicherungsfähiges Objekt erstellt, ohne einen Sicherheitsdeskriptor anzugeben
- Die Quelle des Zugriffstokens
- Gibt an, ob es sich bei dem Token um ein primäres oder Identitätswechseltoken s handelt.
- Eine optionale Liste der Einschränken von SIDs
- Aktuelle Identitätswechselebenen
- Weitere Statistiken
Jeder Prozess verfügt über ein primäres Token, das den Sicherheitskontext des benutzerkontos beschreibt, das dem Prozess zugeordnet ist. 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 imitieren. Der Identitätswechsel ermöglicht dem Thread die Interaktion mit sicherungsfähigen Objekten mithilfe des Sicherheitskontexts des Clients. 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 SIDs, gelöschte Berechtigungen und eine Liste eingeschränkter SIDs deaktiviert haben. |
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 eine Liste der einschränkenden SIDs enthält. |
OpenProcessToken- | Ruft ein Handle für das primäre Zugriffstoken für einen Prozess ab. |
OpenThreadToken- | Ruft ein Handle für das Identitätswechselzugriffstoken für einen Thread ab. |
SetThreadToken- | Weist ein Identitätswechseltoken für einen Thread 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 standardmäßige DACL, die das System in den Sicherheitsdeskriptoren 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 Standardbesitzer-SID für die Sicherheitsdeskriptoren neuer Objekte. |
TOKEN_PRIMARY_GROUP | Die primäre Standardgruppen-SID für die Sicherheitsdeskriptoren neuer Objekte. |
TOKEN_PRIVILEGES | Die Berechtigungen, die einem Zugriffstoken zugeordnet sind. Bestimmt außerdem, 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 | Gibt |
---|---|
TOKEN_INFORMATION_CLASS | Gibt den Typ der festzulegenden oder aus einem Zugriffstoken abgerufenen Informationen an. |
TOKEN_TYPE | Identifiziert ein Zugriffstoken als primäres oder Identitätswechseltoken. |