Freigeben über


Sicherheits-IDs

Ein Sicherheitsbezeichner (SID) ist ein eindeutiger Wert der variablen Länge, der zum Identifizieren eines Trustee-verwendet wird. Jedes Konto verfügt über eine eindeutige SID, die von einer Autorität, z. B. 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 in 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 nie wieder verwendet werden, um einen anderen Benutzer oder eine andere Gruppe zu identifizieren.

Die Windows-Sicherheit verwendet SIDs in den folgenden Sicherheitselementen:

  • In Sicherheitsdeskriptoren, um den Besitzer eines Objekts und einer primären Gruppe zu identifizieren
  • In Zugriffssteuerungseinträge, um den Trustee zu identifizieren, für den der Zugriff zulässig, verweigert oder überwacht wurde
  • In Zugriffstoken, um den Benutzer und die Gruppen zu identifizieren, zu denen der Benutzer gehört

Neben den eindeutig erstellten, domänenspezifischen SIDs, die bestimmten Benutzern und Gruppen zugewiesen sind, gibt es bekannten SIDs, die generische Gruppen und generische Benutzer identifizieren. Beispielsweise identifizieren die bekannten SIDs "Jeder" und "Welt" eine Gruppe, die alle Benutzer enthält.

Die meisten Anwendungen müssen nie mit SIDs arbeiten. Da die Namen von bekannten 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 verfügt die us-englische Version des Windows-Betriebssystems über eine bekannte SID namens "BUILTIN\Administrators", die möglicherweise einen anderen Namen in internationalen Versionen des Systems hat. Ein Beispiel, das eine bekannte SID erstellt, finden Sie unter Suchen nach einer SID in einem Zugriffstoken in C++.

Wenn Sie mit SIDs arbeiten müssen, bearbeiten Sie sie nicht direkt. Verwenden Sie stattdessen die folgenden Funktionen.

Funktion Beschreibung
AllocateAndInitializeSid- Weist eine SID mit der angegebenen Anzahl von Unterautoritäten zu und initialisiert sie.
ConvertSidToStringSid- Konvertiert eine SID in ein Zeichenfolgenformat, das zum Anzeigen, Speichern oder Transport geeignet ist.
ConvertStringSidToSid- Konvertiert eine Zeichenfolgenformat-SID 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 Unterautoritätswerts.
EqualSid- Testet zwei SIDs auf Gleichheit. Sie müssen exakt ü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 sich die Revisionsnummer innerhalb eines bekannten Bereichs befindet und dass die Anzahl der Unterautoritäten kleiner als der höchstwert ist.
LookupAccountName- Ruft die SID ab, die einem angegebenen Kontonamen entspricht.
LookupAccountSid- Ruft den Kontonamen ab, der einer angegebenen SID entspricht.