AuthzInitializeContextFromSid, fonction (authz.h)

La fonction AuthzInitializeContextFromSid crée un contexte client en mode utilisateur à partir d’un identificateur de sécurité utilisateur (SID). Les SID de domaine récupèrent les attributs de groupe de jetons à partir d’Active Directory.

Note Si possible, appelez la fonction AuthzInitializeContextFromToken au lieu de AuthzInitializeContextFromSid. Pour plus d'informations, consultez la section Notes.

 

Syntaxe

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
);

Paramètres

[in] Flags

Les indicateurs suivants sont définis.

À compter de Windows 8 et Windows Server 2012, lorsque vous appelez cette fonction sur un handle de contexte distant, les 16 bits supérieurs doivent être zéro.

Valeur Signification
0 (0x0)
Valeur par défaut.

AuthzInitializeContextFromSid tente de récupérer les informations du groupe de jetons de l’utilisateur en effectuant une ouverture de session S4U.

Si l’ouverture de session S4U n’est pas prise en charge par le domaine de l’utilisateur ou l’ordinateur appelant, AuthzInitializeContextFromSid interroge l’objet de compte de l’utilisateur pour obtenir des informations de groupe. Lorsqu’un compte est interrogé directement, certains groupes qui représentent des caractéristiques d’ouverture de session, tels que Network, Interactive, Anonymous, Network Service ou Local Service, sont omis. Les applications peuvent ajouter explicitement ces SID de groupe en implémentant la fonction AuthzComputeGroupsCallback ou en appelant la fonction AuthzAddSidsToContext .

AUTHZ_SKIP_TOKEN_GROUPS
2 (0x2)
AuthzInitializeContextFromSid ignore toutes les évaluations de groupe. Lorsque cet indicateur est utilisé, le contexte retourné contient uniquement le SID spécifié par le paramètre UserSid . Le SID spécifié peut être un SID arbitraire ou spécifique à l’application. D’autres SID peuvent être ajoutés à ce contexte en implémentant la fonction AuthzComputeGroupsCallback ou en appelant la fonction AuthzAddSidsToContext .
AUTHZ_REQUIRE_S4U_LOGON
4 (0x4)
Provoque l’échec d’AuthzInitializeContextFromSid si Les services Windows pour l’utilisateur ne sont pas disponibles pour récupérer les informations du groupe de jetons.

Windows XP : Cet indicateur n’est pas pris en charge.

AUTHZ_COMPUTE_PRIVILEGES
8 (0x8)
Provoque authzInitializeContextFromSid la récupération des privilèges pour le nouveau contexte. Si cette fonction effectue une ouverture de session S4U, elle récupère les privilèges du jeton. Sinon, la fonction récupère les privilèges de tous les SID dans le contexte.

[in] UserSid

SID de l’utilisateur pour lequel un contexte client sera créé. Il doit s’agir d’un compte d’utilisateur ou d’ordinateur valide, sauf si l’indicateur AUTHZ_SKIP_TOKEN_GROUPS est utilisé.

[in, optional] hAuthzResourceManager

Handle pour le gestionnaire de ressources qui crée ce contexte client. Ce handle est stocké dans la structure de contexte client.

À compter de Windows 8 et Windows Server 2012, le gestionnaire de ressources peut être local ou distant et est obtenu en appelant la fonction AuthzInitializeRemoteResourceManager.

[in] pExpirationTime

Date et heure d’expiration du jeton. Si aucune valeur n’est passée, le jeton n’expire jamais. Le délai d’expiration n’est actuellement pas appliqué.

[in] Identifier

Identificateur spécifique du gestionnaire de ressources. Ce paramètre n’est actuellement pas utilisé.

[in, optional] DynamicGroupArgs

Pointeur vers les paramètres à passer à la fonction de rappel qui calcule les groupes dynamiques. Ce paramètre peut être NULL si aucun paramètre dynamique n’est passé à la fonction de rappel.

À compter de Windows 8 et Windows Server 2012, ce paramètre doit avoir la valeur NULL si le gestionnaire de ressources est distant. Sinon, ERROR_NOT_SUPPORTED sera défini.

[out] phAuthzClientContext

Pointeur vers le handle vers le contexte client créé par la fonction AuthzInitializeContextFromSid . Lorsque vous avez terminé d’utiliser le handle, libérez-le en appelant la fonction AuthzFreeContext .

Valeur retournée

Si la fonction réussit, la fonction retourne une valeur différente de zéro.

Si la fonction échoue, elle retourne zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Remarques

Si possible, appelez la fonction AuthzInitializeContextFromToken au lieu de AuthzInitializeContextFromSid. AuthzInitializeContextFromSid tente de récupérer les informations disponibles dans un jeton d’ouverture de session si le client s’est connecté. Un jeton d’ouverture de session réel fournit plus d’informations, telles que le type d’ouverture de session et les propriétés d’ouverture de session, et reflète le comportement du package d’authentification utilisé pour l’ouverture de session. Le contexte client créé par AuthzInitializeContextFromToken utilise un jeton d’ouverture de session, et le contexte client résultant est plus complet et plus précis qu’un contexte client créé par AuthzInitializeContextFromSid.

Cette fonction résout uniquement les SID d’utilisateur valides.

Windows XP : Cette fonction résout les appartenances aux groupes pour les SID d’utilisateurs et de groupes valides (sauf si l’indicateur AUTHZ_SKIP_TOKEN_GROUPS est utilisé). La prise en charge de la résolution des appartenances aux SID de groupe peut être modifiée ou indisponible dans les versions suivantes.

Cette fonction appelle la fonction de rappel AuthzComputeGroupsCallback pour ajouter des SID au contexte nouvellement créé.

Important Les applications ne doivent pas supposer que le contexte appelant est autorisé à utiliser cette fonction. La fonction AuthzInitializeContextFromSid lit l’attribut tokenGroupsGlobalAndUniversal du SID spécifié dans l’appel pour déterminer les appartenances au groupe de l’utilisateur actuel. Si l’objet de l’utilisateur se trouve dans Active Directory, le contexte appelant doit avoir un accès en lecture à l’attribut tokenGroupsGlobalAndUniversal sur l’objet utilisateur. Lorsqu’un domaine est créé, la sélection de compatibilité d’accès par défaut est Autorisations compatibles avec les systèmes d’exploitation Windows 2000 et Windows Server 2003. Lorsque cette option est définie, le groupe Accès compatible pré-Windows 2000 inclut uniquement les identificateurs de sécurité intégrés Utilisateurs authentifiés . Par conséquent, les applications peuvent ne pas avoir accès à l’attribut tokenGroupsGlobalAndUniversal ; dans ce cas, la fonction AuthzInitializeContextFromSid échoue avec ACCESS_DENIED. Les applications qui utilisent cette fonction doivent gérer correctement cette erreur et fournir une documentation de support. Pour simplifier l’octroi de l’autorisation aux comptes d’interroger les informations de groupe d’un utilisateur, ajoutez des comptes qui ont besoin de la possibilité de rechercher des informations de groupe dans le groupe d’accès d’autorisation Windows.
 

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête authz.h
Bibliothèque Authz.lib
DLL Authz.dll
Composant redistribuable Windows Server 2003 Administration Tools Pack sur Windows XP

Voir aussi

Autorisation de l’accès anonyme

AuthzFreeContext

Fonctions Access Control de base