Sicherheits-IDs
Eine Sicherheits-ID (SID) ist ein eindeutiger Wert mit variabler Länge, der zum Identifizieren eines Treuhänders verwendet wird. Jedes Konto verfügt über eine eindeutige SID, die von einer Autorität wie einem Windows-Domänencontroller ausgestellt und in einer Sicherheitsdatenbank gespeichert ist. Jedes Mal, wenn sich ein Benutzer anmeldet, ruft das System die SID für diesen Benutzer aus der Datenbank ab und platziert sie im Zugriffstoken für diesen Benutzer. Das System verwendet die SID im Zugriffstoken, um den Benutzer bei allen nachfolgenden Interaktionen mit der Windows-Sicherheit zu identifizieren. Wenn eine SID als eindeutiger Bezeichner für einen Benutzer oder eine Gruppe verwendet wurde, kann sie nicht erneut verwendet werden, um einen anderen Benutzer oder eine Gruppe zu identifizieren.
Windows-Sicherheit verwendet SIDs in den folgenden Sicherheitselementen:
- In Sicherheitsbeschreibungen zum Identifizieren des Besitzers eines Objekts und einer primären Gruppe
- In Zugriffssteuerungseinträgen, um den Treuhänder zu identifizieren, für den der Zugriff zugelassen, verweigert oder überwacht wird
- In Zugriffstoken, um den Benutzer und die Gruppen zu identifizieren, zu denen der Benutzer gehört
Zusätzlich zu den eindeutig erstellten, domänenspezifischen SIDs, die bestimmten Benutzern und Gruppen zugewiesen sind, gibt es bekannte SIDs , die generische Gruppen und generische Benutzer identifizieren. Beispielsweise identifizieren die bekannten SIDs "Jeder" und "Welt" eine Gruppe, die alle Benutzer umfasst.
Die meisten Anwendungen müssen nie mit SIDs arbeiten. Da die Namen bekannter SIDs variieren können, sollten Sie die Funktionen verwenden, um die SID aus vordefinierten Konstanten zu erstellen, anstatt den Namen der bekannten SID zu verwenden. Beispielsweise weist die us-amerikanische englische Version des Windows-Betriebssystems eine bekannte SID namens "BUILTIN\Administrators" auf, die in internationalen Versionen des Systems möglicherweise einen anderen Namen hat. Ein Beispiel zum Erstellen einer bekannten SID finden Sie unter Suchen nach einer SID in einem Zugriffstoken in C++.
Wenn Sie mit SIDs arbeiten müssen, bearbeiten Sie diese nicht direkt. Verwenden Sie stattdessen die folgenden Funktionen.
Funktion | BESCHREIBUNG |
---|---|
AllocateAndInitializeSid | Ordnet eine SID mit der angegebenen Anzahl von Unterautoritäten zu und initialisiert sie. |
ConvertSidToStringSid | Konvertiert eine SID in ein Zeichenfolgenformat, das für die Anzeige, Speicherung oder den Transport geeignet ist. |
ConvertStringSidToSid | Konvertiert eine SID im Zeichenfolgenformat in eine gültige, funktionale SID. |
CopySid | Kopiert eine Quell-SID in einen Puffer. |
EqualPrefixSid | Testet zwei SID-Präfixwerte auf Gleichheit. Ein SID-Präfix ist die gesamte SID mit Ausnahme des letzten Unterautorisierungswerts. |
EqualSid | Testet zwei SIDs auf Gleichheit. Sie müssen genau übereinstimmen, um als gleich angesehen zu werden. |
FreeSid | Gibt eine zuvor zugeordnete SID mithilfe der AllocateAndInitializeSid-Funktion frei. |
GetLengthSid | Ruft die Länge einer SID ab. |
GetSidIdentifierAuthority | Ruft einen Zeiger auf die Bezeichnerautorität für eine SID ab. |
GetSidLengthRequired | Ruft die Größe des Puffers ab, der zum Speichern einer SID mit einer angegebenen Anzahl von Unterautoritäten erforderlich ist. |
GetSidSubAuthority | Ruft einen Zeiger auf eine angegebene Unterautorität in einer SID ab. |
GetSidSubAuthorityCount | Ruft die Anzahl der Unterautoritäten in einer SID ab. |
InitializeSid | Initialisiert eine SID-Struktur . |
IsValidSid | Überprüft die Gültigkeit einer SID, indem überprüft wird, ob die Revisionsnummer innerhalb eines bekannten Bereichs liegt und dass die Anzahl der Unterautoritäten kleiner als der Maximalwert ist. |
LookupAccountName | Ruft die SID ab, die einem angegebenen Kontonamen entspricht. |
LookupAccountSid | Ruft den Kontonamen ab, der einer angegebenen SID entspricht. |