Udostępnij za pośrednictwem


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.