AuthzInitializeContextFromSid-Funktion (authz.h)

Die AuthzInitializeContextFromSid-Funktion erstellt einen Clientkontext im Benutzermodus aus einer Benutzersicherheits-ID (SID). Domänen-SIDs rufen Tokengruppenattribute aus Active Directory ab.

Hinweis Rufen Sie nach Möglichkeit die AuthzInitializeContextFromToken-Funktion anstelle von AuthzInitializeContextFromSid auf. Weitere Informationen finden Sie in den Hinweisen.

 

Syntax

AUTHZAPI BOOL AuthzInitializeContextFromSid(
  [in]           DWORD                         Flags,
  [in]           PSID                          UserSid,
  [in, optional] AUTHZ_RESOURCE_MANAGER_HANDLE hAuthzResourceManager,
  [in]           PLARGE_INTEGER                pExpirationTime,
  [in]           LUID                          Identifier,
  [in, optional] PVOID                         DynamicGroupArgs,
  [out]          PAUTHZ_CLIENT_CONTEXT_HANDLE  phAuthzClientContext
);

Parameter

[in] Flags

Die folgenden Flags sind definiert.

Ab Windows 8 und Windows Server 2012 müssen die oberen 16 Bits null sein, wenn Sie diese Funktion für ein Remotekontexthandle aufrufen.

Wert Bedeutung
0 (0x0)
Standardwert.

AuthzInitializeContextFromSid versucht, die Tokengruppeninformationen des Benutzers abzurufen, indem eine S4U-Anmeldung ausgeführt wird.

Wenn die S4U-Anmeldung von der Domäne des Benutzers oder dem aufrufenden Computer nicht unterstützt wird, fragt AuthzInitializeContextFromSid das Kontoobjekt des Benutzers nach Gruppeninformationen ab. Wenn ein Konto direkt abgefragt wird, werden einige Gruppen, die Anmeldemerkmale darstellen, z. B. Netzwerk, Interaktiv, Anonym, Netzwerkdienst oder lokaler Dienst, ausgelassen. Anwendungen können solche Gruppen-SIDs explizit hinzufügen, indem sie die AuthzComputeGroupsCallback-Funktion implementieren oder die AuthzAddSidsToContext-Funktion aufrufen.

AUTHZ_SKIP_TOKEN_GROUPS
2 (0x2)
Bewirkt , dass AuthzInitializeContextFromSid alle Gruppenauswertungen überspringt. Wenn dieses Flag verwendet wird, enthält der zurückgegebene Kontext nur die vom UserSid-Parameter angegebene SID. Die angegebene SID kann eine beliebige oder anwendungsspezifische SID sein. Andere SIDs können diesem Kontext hinzugefügt werden, indem sie die AuthzComputeGroupsCallback-Funktion implementieren oder die Funktion AuthzAddSidsToContext aufrufen.
AUTHZ_REQUIRE_S4U_LOGON
4 (0x4)
Bewirkt , dass AuthzInitializeContextFromSid fehlschlägt, wenn Windows-Dienste für Benutzer nicht zum Abrufen von Tokengruppeninformationen verfügbar sind.

Windows XP: Dieses Flag wird nicht unterstützt.

AUTHZ_COMPUTE_PRIVILEGES
8 (0x8)
Bewirkt , dass AuthzInitializeContextFromSid Berechtigungen für den neuen Kontext abruft. Wenn diese Funktion eine S4U-Anmeldung ausführt, ruft sie Berechtigungen aus dem Token ab. Andernfalls ruft die Funktion Berechtigungen von allen SIDs im Kontext ab.

[in] UserSid

Die SID des Benutzers, für den ein Clientkontext erstellt wird. Dies muss ein gültiges Benutzer- oder Computerkonto sein, es sei denn, das flag AUTHZ_SKIP_TOKEN_GROUPS wird verwendet.

[in, optional] hAuthzResourceManager

Ein Handle für den Ressourcen-Manager, der diesen Clientkontext erstellt. Dieses Handle wird in der Clientkontextstruktur gespeichert.

Ab Windows 8 und Windows Server 2012 kann der Ressourcen-Manager lokal oder remote sein und wird durch Aufrufen der AuthzInitializeRemoteResourceManager-Funktion abgerufen.

[in] pExpirationTime

Ablaufdatum und -uhrzeit des Tokens. Wenn kein Wert übergeben wird, läuft das Token nie ab. Die Ablaufzeit wird derzeit nicht erzwungen.

[in] Identifier

Spezifischer Bezeichner des Ressourcen-Managers. Dieser Parameter wird derzeit nicht verwendet.

[in, optional] DynamicGroupArgs

Ein Zeiger auf Parameter, die an die Rückruffunktion übergeben werden sollen, die dynamische Gruppen berechnet. Dieser Parameter kann NULL sein, wenn keine dynamischen Parameter an die Rückruffunktion übergeben werden.

Ab Windows 8 und Windows Server 2012 muss dieser Parameter NULL sein, wenn der Ressourcen-Manager remote ist. Andernfalls wird ERROR_NOT_SUPPORTED festgelegt.

[out] phAuthzClientContext

Ein Zeiger auf das Handle auf den Clientkontext, den die AuthzInitializeContextFromSid-Funktion erstellt. Wenn Sie die Verwendung des Handles abgeschlossen haben, geben Sie es frei, indem Sie die AuthzFreeContext-Funktion aufrufen.

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt die Funktion ungleich null zurück.

Wenn die Funktion fehlschlägt, wird null zurückgegeben. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Rufen Sie nach Möglichkeit die AuthzInitializeContextFromToken-Funktion anstelle von AuthzInitializeContextFromSid auf. AuthzInitializeContextFromSid versucht, die in einem Anmeldetoken verfügbaren Informationen abzurufen, wenn der Client tatsächlich angemeldet war. Ein tatsächliches Anmeldetoken bietet weitere Informationen, z. B. Anmeldetyp und Anmeldeeigenschaften, und spiegelt das Verhalten des für die Anmeldung verwendeten Authentifizierungspakets wider. Der von AuthzInitializeContextFromToken erstellte Clientkontext verwendet ein Anmeldetoken, und der resultierende Clientkontext ist vollständiger und genauer als ein von AuthzInitializeContextFromSid erstellter Clientkontext.

Diese Funktion löst nur gültige Benutzer-SIDs auf.

Windows XP: Diese Funktion löst Gruppenmitgliedschaften für gültige Benutzer- und Gruppen-SIDs auf (es sei denn, es wird das flag AUTHZ_SKIP_TOKEN_GROUPS verwendet). Die Unterstützung für das Auflösen von Mitgliedschaften von Gruppen-SIDs kann in nachfolgenden Versionen geändert oder nicht verfügbar sein.

Diese Funktion ruft die Rückruffunktion AuthzComputeGroupsCallback auf, um dem neu erstellten Kontext SIDs hinzuzufügen.

Wichtig Anwendungen sollten nicht davon ausgehen, dass der aufrufende Kontext über die Berechtigung zur Verwendung dieser Funktion verfügt. Die AuthzInitializeContextFromSid-Funktion liest das Attribut tokenGroupsGlobalAndUniversal der im Aufruf angegebenen SID, um die Gruppenmitgliedschaften des aktuellen Benutzers zu bestimmen. Wenn sich das Objekt des Benutzers in Active Directory befindet, muss der aufrufende Kontext über Lesezugriff auf das Attribut tokenGroupsGlobalAndUniversal für das Benutzerobjekt verfügen. Wenn eine neue Domäne erstellt wird, ist die Standardauswahl für die Zugriffskompatibilität Berechtigungen, die mit windows 2000- und Windows Server 2003-Betriebssystemen kompatibel sind. Wenn diese Option festgelegt ist, enthält die Gruppe Pre-Windows 2000 Compatible Access nur die integrierten Sicherheits-IDs für authentifizierte Benutzer . Daher haben Anwendungen möglicherweise keinen Zugriff auf das Attribut tokenGroupsGlobalAndUniversal. In diesem Fall schlägt die AuthzInitializeContextFromSid-Funktion mit ACCESS_DENIED fehl. Anwendungen, die diese Funktion verwenden, sollten diesen Fehler ordnungsgemäß behandeln und unterstützende Dokumentation bereitstellen. Um zu vereinfachen, konten die Berechtigung zum Abfragen der Gruppeninformationen eines Benutzers zu gewähren, fügen Sie Konten hinzu, die die Möglichkeit benötigen, Gruppeninformationen zur Windows-Autorisierungszugriffsgruppe nachzuschlagen.
 

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile authz.h
Bibliothek Authz.lib
DLL Authz.dll
Verteilbare Komponente Windows Server 2003 Administration Tools Pack unter Windows XP

Weitere Informationen

Zulassen des anonymen Zugriffs

AuthzFreeContext

Grundlegende Access Control-Funktionen