Identificatori di sicurezza

Un identificatore di sicurezza (SID) è un valore univoco di lunghezza variabile usato per identificare un trustee. Ogni account ha un SID univoco emesso da un'autorità, ad esempio un controller di dominio Windows, e archiviato in un database di sicurezza. Ogni volta che un utente accede, il sistema recupera il SID per tale utente dal database e lo inserisce nel token di accesso per tale utente. Il sistema usa il SID nel token di accesso per identificare l'utente in tutte le interazioni successive con la sicurezza di Windows. Quando un SID è stato usato come identificatore univoco per un utente o un gruppo, non può mai essere usato di nuovo per identificare un altro utente o gruppo.

La sicurezza di Windows usa i SID negli elementi di sicurezza seguenti:

Oltre ai SID specifici del dominio assegnati a utenti e gruppi specifici in modo univoco, esistono SID noti che identificano gruppi generici e utenti generici. Ad esempio, i SID noti, Everyone e World, identificano un gruppo che include tutti gli utenti.

La maggior parte delle applicazioni non deve mai usare i SID. Poiché i nomi dei SID noti possono variare, è necessario usare le funzioni per compilare il SID da costanti predefinite anziché usare il nome del SID noto. Ad esempio, la versione inglese degli Stati Uniti del sistema operativo Windows ha un SID noto denominato "BUILTIN\Administrators" che potrebbe avere un nome diverso nelle versioni internazionali del sistema. Per un esempio che compila un SID noto, vedere Ricerca di un SID in un token di accesso in C++.

Se è necessario usare i SID, non modificarli direttamente. Usare invece le funzioni seguenti.

Funzione Descrizione
AllocateAndInitializeSid Alloca e inizializza un SID con il numero specificato di sottoautorità.
ConvertSidToStringSid Converte un SID in un formato stringa adatto per la visualizzazione, l'archiviazione o il trasporto.
ConvertStringSidToSid Converte un SID in formato stringa in un SID funzionale valido.
CopySid Copia un SID di origine in un buffer.
EqualPrefixSid Verifica due valori di prefisso SID per verificarne l'uguaglianza. Un prefisso SID è l'intero SID, ad eccezione dell'ultimo valore di sottoautorità.
EqualSid Verifica due SID per verificarne l'uguaglianza. Devono corrispondere esattamente a essere considerati uguali.
FreeSid Libera un SID allocato in precedenza usando la funzione AllocateAndInitializeSid .
GetLengthSid Recupera la lunghezza di un SID.
GetSidIdentifierAuthority Recupera un puntatore all'autorità di identificatore per un SID.
GetSidLengthRequired Recupera le dimensioni del buffer necessarie per archiviare un SID con un numero specificato di sottoautorità.
GetSidSubAuthority Recupera un puntatore a una sottoautorità specificata in un SID.
GetSidSubAuthorityCount Recupera il numero di sottoautorità in un SID.
InitializeSid Inizializza una struttura SID .
IsValidSid Verifica la validità di un SID verificando che il numero di revisione si trova all'interno di un intervallo noto e che il numero di sottoautorità sia minore del valore massimo.
Lookupaccountname Recupera il SID corrispondente a un nome di account specificato.
Lookupaccountsid Recupera il nome dell'account corrispondente a un SID specificato.