Säkerhetsidentifierare
En säkerhetsidentifierare (SID) är ett unikt värde för variabel längd som används för att identifiera en förvaltare. Varje konto har ett unikt SID utfärdat av en utfärdare, till exempel en Windows-domänkontrollant, och lagras i en säkerhetsdatabas. Varje gång en användare loggar in hämtar systemet SID för användaren från databasen och placerar det i åtkomsttoken för användaren. Systemet använder SID i åtkomsttoken för att identifiera användaren i alla efterföljande interaktioner med Windows-säkerhet. När ett SID har använts som unik identifierare för en användare eller grupp kan det aldrig användas igen för att identifiera en annan användare eller grupp.
Windows-säkerhet använder SID:erna i följande säkerhetselement:
- I säkerhetsbeskrivningar för att identifiera ägaren till ett objekt och en primär grupp
- I åtkomstkontrollposterska du identifiera den förvaltare för vilken åtkomst tillåts, nekas eller granskas
- I åtkomsttokenska du identifiera användaren och de grupper som användaren tillhör
Förutom de unikt skapade, domänspecifika SID:er som tilldelats specifika användare och grupper finns det välkända SID:er som identifierar generiska grupper och generiska användare. Till exempel identifierar välkända SID:er, Alla och Världen, en grupp som innehåller alla användare.
De flesta program behöver aldrig arbeta med SID:er. Eftersom namnen på välkända SID:er kan variera bör du använda funktionerna för att skapa SID från fördefinierade konstanter i stället för att använda namnet på det välkända SID. Till exempel har den amerikanska engelska versionen av Windows-operativsystemet ett välkänt SID med namnet "BUILTIN\Administrators" som kan ha ett annat namn på internationella versioner av systemet. Ett exempel som skapar ett välkänt SID finns i Söka efter ett SID i en åtkomsttoken i C++.
Om du behöver arbeta med SID:er ska du inte manipulera dem direkt. Använd i stället följande funktioner.
Funktion | Beskrivning |
---|---|
AllocateAndInitializeSid | Allokerar och initierar ett SID med det angivna antalet underautentiteter. |
ConvertSidToStringSid | Konverterar ett SID till ett strängformat som lämpar sig för visning, lagring eller transport. |
ConvertStringSidToSid | Konverterar ett sid i strängformat till ett giltigt, funktionellt SID. |
CopySid | Kopierar ett käll-SID till en buffert. |
EqualPrefixSid | Testar två SID-prefixvärden för likhet. Ett SID-prefix är hela SID förutom det sista underautentiseringsvärdet. |
EqualSid | Testar två SID:er för likhet. De måste matcha exakt för att anses vara lika. |
FreeSid | Frigör ett tidigare allokerat SID med hjälp av funktionen AllocateAndInitializeSid. |
GetLengthSid | Hämtar längden på ett SID. |
GetSidIdentifierAuthority | Hämtar en pekare till identifierarutfärdaren för ett SID. |
GetSidLengthRequired | Hämtar storleken på bufferten som krävs för att lagra ett SID med ett angivet antal underautentiteter. |
GetSidSubAuthority | Hämtar en pekare till en angiven underautentisering i ett SID. |
GetSidSubAuthorityCount | Hämtar antalet underautentiteter i ett SID. |
InitializeSid | Initierar en SID- struktur. |
IsValidSid | Testar giltigheten för ett SID genom att kontrollera att revisionsnumret ligger inom ett känt intervall och att antalet underautentiteter är mindre än det maximala. |
LookupAccountName | Hämtar det SID som motsvarar ett angivet kontonamn. |
LookupAccountSid | Hämtar det kontonamn som motsvarar ett angivet SID. |