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.