Tokeny dostępu
token dostępu to obiekt opisujący kontekst zabezpieczeń procesu lub wątku. Informacje w tokenie obejmują tożsamość i uprawnienia konta użytkownika skojarzonego z procesem lub wątkiem. Gdy użytkownik loguje się, system weryfikuje hasło użytkownika, porównując je z informacjami przechowywanymi w bazie danych zabezpieczeń. Jeśli hasło jest uwierzytelnione, system generuje token dostępu. Każdy proces wykonywany w imieniu tego użytkownika ma kopię tego tokenu dostępu.
System używa tokenu dostępu do identyfikowania użytkownika, gdy wątek wchodzi w interakcję z zabezpieczanym obiektem lub próbuje wykonać zadanie systemowe wymagające uprawnień. Tokeny dostępu zawierają następujące informacje:
- Identyfikator zabezpieczeń (SID) dla konta użytkownika
- Identyfikatory SID dla grup, których użytkownik jest członkiem
- Identyfikator SID logowania identyfikujący bieżącą sesję logowania
- Lista uprawnień przechowywanych przez użytkownika lub grupy użytkowników
- Identyfikator SID właściciela
- Identyfikator SID grupy podstawowej
- Domyślna listy DACL używana przez system podczas tworzenia zabezpieczanego obiektu przez użytkownika bez określania deskryptora zabezpieczeń
- Źródło tokenu dostępu
- Czy token jest podstawowym, czy personifikacji tokenu
- Opcjonalna lista ograniczania identyfikatorów SID
- Bieżące poziomy personifikacji
- Inne statystyki
Każdy proces ma podstawowy token opisujący kontekst zabezpieczeń konta użytkownika skojarzonego z procesem. Domyślnie system używa tokenu podstawowego, gdy wątek procesu wchodzi w interakcję z zabezpieczanym obiektem. Ponadto wątek może personifikować konto klienta. Personifikacja umożliwia wątkowi interakcję z zabezpieczanymi obiektami przy użyciu kontekstu zabezpieczeń klienta. Wątek, który personifikuje klienta, ma zarówno token podstawowy, jak i token personifikacji .
Użyj funkcji OpenProcessToken, aby pobrać dojście do podstawowego tokenu procesu. Użyj funkcji OpenThreadToken, aby pobrać uchwyt do tokenu personifikacji wątku. Aby uzyskać więcej informacji, zobacz Personifikacja.
Następujące funkcje umożliwiają manipulowanie tokenami dostępu.
Funkcja | Opis |
---|---|
AdjustTokenGroups | Zmienia informacje o grupie w tokenie dostępu. |
AdjustTokenPrivileges | Włącza lub wyłącza uprawnienia w tokenie dostępu. Nie udziela nowych uprawnień ani nie odwołuje istniejących. |
CheckTokenMembership | Określa, czy określony identyfikator SID jest włączony w określonym tokenie dostępu. |
CreateRestrictedToken | Tworzy nowy token, który jest ograniczoną wersją istniejącego tokenu. Token ograniczony może mieć wyłączone identyfikatory SID, usunięte uprawnienia i listę ograniczonych identyfikatorów SID. |
DuplicateToken | Tworzy nowy token personifikacji, który duplikuje istniejący token. |
DuplicateTokenEx | Tworzy nowy token podstawowy lub token personifikacji, który duplikuje istniejący token. |
GetTokenInformation | Pobiera informacje o tokenie. |
IsTokenRestricted | Określa, czy token ma listę ograniczeń identyfikatorów SID. |
openProcessToken | Pobiera dojście do podstawowego tokenu dostępu dla procesu. |
OpenThreadToken | Pobiera uchwyt do tokenu dostępu personifikacji dla wątku. |
SetThreadToken | Przypisuje lub usuwa token personifikacji dla wątku. |
SetTokenInformation | Zmienia właściciela tokenu, grupę podstawową lub domyślną listę DACL. |
Funkcje tokenu dostępu używają następujących struktur do opisania części tokenu dostępu.
Struktura | Opis |
---|---|
TOKEN_CONTROL | Informacje identyfikujące token dostępu. |
TOKEN_DEFAULT_DACL | Domyślna lista DACL używana przez system w deskryptorach zabezpieczeń nowych obiektów utworzonych przez wątek. |
TOKEN_GROUPS | Określa identyfikatory SID i atrybuty identyfikatorów SID grupy w tokenie dostępu. |
TOKEN_OWNER | Domyślny identyfikator SID właściciela dla deskryptorów zabezpieczeń nowych obiektów. |
TOKEN_PRIMARY_GROUP | Domyślny identyfikator SID grupy podstawowej dla deskryptorów zabezpieczeń nowych obiektów. |
TOKEN_PRIVILEGES | Uprawnienia skojarzone z tokenem dostępu. Określa również, czy uprawnienia są włączone. |
TOKEN_SOURCE | Źródło tokenu dostępu. |
TOKEN_STATISTICS | Statystyki skojarzone z tokenem dostępu. |
TOKEN_USER | Identyfikator SID użytkownika skojarzonego z tokenem dostępu. |
Funkcje tokenu dostępu używają następujących typów wyliczenia.
Typ wyliczenia | Określa |
---|---|
TOKEN_INFORMATION_CLASS | Określa typ ustawianych lub pobieranych informacji z tokenu dostępu. |
TOKEN_TYPE | Identyfikuje token dostępu jako podstawowy lub personifikacyjny token. |