Sdílet prostřednictvím


Přístupové tokeny

Přístupový token je objekt, který popisuje kontext zabezpečení procesu nebo vlákna. Informace v tokenu zahrnují identitu a oprávnění uživatelského účtu přidruženého k procesu nebo vláknu. Když se uživatel přihlásí, systém ověří heslo uživatele tím, že ho porovná s informacemi uloženými v databázi zabezpečení. Pokud je heslo ověřené, systém vytvoří přístupový token. Každý proces spuštěný jménem tohoto uživatele má kopii tohoto přístupového tokenu.

Systém používá přístupový token k identifikaci uživatele, když vlákno komunikuje s zabezpečitelným objektem nebo se pokusí provést systémovou úlohu, která vyžaduje oprávnění. Přístupové tokeny obsahují následující informace:

  • Identifikátor zabezpečení (SID) pro účet uživatele
  • IDENTIFIKÁTORY SID pro skupiny, jejichž je uživatel členem
  • Identifikátor SID přihlášení, který identifikuje aktuální přihlašovací relaci
  • Seznam oprávnění uchovávané uživatelem nebo skupinami uživatele
  • Identifikátor SID vlastníka
  • Identifikátor SID pro primární skupinu
  • Výchozí seznam DACL, který systém používá, když uživatel vytvoří zabezpečitelný objekt bez zadání popisovače zabezpečení
  • Zdroj přístupového tokenu
  • Jestli je token primárním nebo tokenem zosobnění
  • Volitelný seznam omezení identifikátorů SID
  • Aktuální úrovně zosobnění
  • Další statistiky

Každý proces má primární token, který popisuje kontext zabezpečení uživatelského účtu přidruženého k procesu. Ve výchozím nastavení systém používá primární token, když vlákno procesu komunikuje se zabezpečitelným objektem. Vlákno navíc může zosobnit klientský účet. Zosobnění umožňuje vláknu pracovat se zabezpečitelnými objekty pomocí kontextu zabezpečení klienta. Vlákno, které zosobní klienta, má primární token i token zosobnění.

Pomocí funkce OpenProcessToken načtěte popisovač primárního tokenu procesu. Pomocí funkce OpenThreadToken načtěte popisovač tokenu zosobnění vlákna. Další informace najdete v tématu zosobnění.

K manipulaci s přístupovými tokeny můžete použít následující funkce.

Funkce Popis
AdjustTokenGroups Změní informace o skupině v přístupovém tokenu.
AdjustTokenPrivileges Povolí nebo zakáže oprávnění v přístupovém tokenu. Neuděluje nová oprávnění ani neodvolá stávající oprávnění.
CheckTokenMembership Určuje, jestli je v zadaném přístupovém tokenu povolená zadaná identifikátor SID.
CreateRestrictedToken Vytvoří nový token, který je omezená verze existujícího tokenu. Omezený token může obsahovat zakázané IDENTIFIKÁTORy SID, odstraněná oprávnění a seznam omezených identifikátorů SID.
duplicateToken Vytvoří nový token zosobnění, který duplikuje existující token.
DuplicateTokenEx Vytvoří nový primární token nebo token zosobnění, který duplikuje existující token.
GetTokenInformation Načte informace o tokenu.
IsTokenRestricted Určuje, jestli má token seznam omezení identifikátorů SID.
OpenProcessToken Načte popisovač primárního přístupového tokenu procesu.
OpenThreadToken Načte popisovač přístupového tokenu zosobnění pro vlákno.
SetThreadToken Přiřadí nebo odebere token zosobnění pro vlákno.
SetTokenInformation Změní vlastníka tokenu, primární skupinu nebo výchozí seznam DACL.

 

Funkce přístupového tokenu používají následující struktury k popisu částí přístupového tokenu.

Struktura Popis
TOKEN_CONTROL Informace, které identifikují přístupový token
TOKEN_DEFAULT_DACL Výchozí seznam DACL, který systém používá v popisovačích zabezpečení nových objektů vytvořených vláknem.
TOKEN_GROUPS Určuje identifikátory SID a atributy identifikátorů SID skupin v přístupovém tokenu.
TOKEN_OWNER Výchozí identifikátor SID vlastníka pro popisovače zabezpečení nových objektů.
TOKEN_PRIMARY_GROUP Výchozí identifikátor SID primární skupiny pro popisovače zabezpečení nových objektů.
TOKEN_PRIVILEGES Oprávnění přidružená k přístupovém tokenu. Určuje také, jestli jsou oprávnění povolená.
TOKEN_SOURCE Zdroj přístupového tokenu.
TOKEN_STATISTICS Statistiky přidružené k přístupovým tokenům
TOKEN_USER Identifikátor SID uživatele přidruženého k přístupovém tokenu.

 

Funkce přístupového tokenu používají následující typy výčtu.

Typ výčtu Specifikuje
TOKEN_INFORMATION_CLASS Určuje typ informací, které se nastavují nebo načítají z přístupového tokenu.
TOKEN_TYPE Identifikuje přístupový token jako primární token nebo token zosobnění.