Condividi tramite


Token di accesso

Un token di accesso è un oggetto che descrive il contesto di sicurezza di un processodio thread. Le informazioni in un token includono l'identità e i privilegi dell'account utente associato al processo o al thread. Quando un utente accede, il sistema verifica la password dell'utente confrontandolo con le informazioni archiviate in un database di sicurezza. Se la password è autenticata, il sistema produce un token di accesso. Ogni processo eseguito per conto di questo utente ha una copia di questo token di accesso.

Il sistema usa un token di accesso per identificare l'utente quando un thread interagisce con un oggetto a protezione diretta o tenta di eseguire un'attività di sistema che richiede privilegi. I token di accesso contengono le informazioni seguenti:

  • Identificatore di sicurezza (SID) per l'account dell'utente
  • SID per i gruppi di cui l'utente è membro
  • SID di accesso che identifica la sessione di accesso corrente
  • Elenco dei privilegi di detenuti dall'utente o dai gruppi dell'utente
  • SID proprietario
  • SID per il gruppo primario
  • Il DACL predefinito usato dal sistema quando l'utente crea un oggetto a protezione diretta senza specificare un descrittore di sicurezza
  • Origine del token di accesso
  • Indica se il token è unprimarioo token di rappresentazione
  • Elenco facoltativo di limitare i SID
  • Livelli di rappresentazione correnti
  • Altre statistiche

Ogni processo ha untoken primario che descrive il contesto di sicurezza dell'account utente associato al processo. Per impostazione predefinita, il sistema usa il token primario quando un thread del processo interagisce con un oggetto a protezione diretta. Inoltre, un thread può rappresentare un account client. La rappresentazione consente al thread di interagire con oggetti a protezione diretta usando il contesto di sicurezza del client. Un thread che rappresenta un client ha sia un token primario che un token di rappresentazione .

Usare la funzioneOpenProcessTokenper recuperare un handle al token primario di un processo. Usare la funzioneOpenThreadToken per recuperare un handle per il token di rappresentazione di un thread. Per altre informazioni, vedere rappresentazione.

È possibile usare le funzioni seguenti per modificare i token di accesso.

Funzione Descrizione
AdjustTokenGroups Modifica le informazioni del gruppo in un token di accesso.
AdjustTokenPrivileges Abilita o disabilita i privilegi in un token di accesso. Non concede nuovi privilegi o revoca quelli esistenti.
CheckTokenMembership Determina se un SID specificato è abilitato in un token di accesso specificato.
CreateRestrictedToken Crea un nuovo token che rappresenta una versione con restrizioni di un token esistente. Il token con restrizioni può avere SID disabilitati, privilegi eliminati e un elenco di SID con restrizioni.
DuplicateToken Crea un nuovo token di rappresentazione che duplica un token esistente.
duplicateTokenEx Crea un nuovo token primario o un token di rappresentazione che duplica un token esistente.
GetTokenInformation Recupera informazioni su un token.
IsTokenRestricted Determina se un token dispone di un elenco di SID limitati.
OpenProcessToken Recupera un handle per il token di accesso primario per un processo.
OpenThreadToken Recupera un handle per il token di accesso di rappresentazione per un thread.
SetThreadToken Assegna o rimuove un token di rappresentazione per un thread.
SetTokenInformation Modifica il proprietario, il gruppo primario o l'elenco DACL predefinito di un token.

 

Le funzioni del token di accesso usano le strutture seguenti per descrivere le parti di un token di accesso.

Struttura Descrizione
TOKEN_CONTROL Informazioni che identificano un token di accesso.
TOKEN_DEFAULT_DACL DaCL predefinito utilizzato dal sistema nei descrittori di sicurezza dei nuovi oggetti creati da un thread.
TOKEN_GROUPS Specifica i SID e gli attributi dei SID del gruppo in un token di accesso.
TOKEN_OWNER SID proprietario predefinito per i descrittori di sicurezza dei nuovi oggetti.
TOKEN_PRIMARY_GROUP SID del gruppo primario predefinito per i descrittori di sicurezza dei nuovi oggetti.
TOKEN_PRIVILEGES Privilegi associati a un token di accesso. Determina inoltre se i privilegi sono abilitati.
TOKEN_SOURCE Origine di un token di accesso.
TOKEN_STATISTICS Statistiche associate a un token di accesso.
TOKEN_USER SID dell'utente associato a un token di accesso.

 

Le funzioni del token di accesso usano i tipi di enumerazione seguenti.

Tipo di enumerazione Specifica
TOKEN_INFORMATION_CLASS Identifica il tipo di informazioni da impostare o recuperare da un token di accesso.
TOKEN_TYPE Identifica un token di accesso come token di rappresentazione o primario.