Descripteurs de sécurité pour les objets privés

Pour créer un descripteur de sécurité, un serveur protégé peut utiliser la même procédure qu’une application pour créer un descripteur de sécurité pour un objet sécurisable. Pour obtenir un exemple de code, consultez Création d’un descripteur de sécurité pour un nouvel objet en C++. Une application serveur protégée peut également appeler la fonction BuildSecurityDescriptor pour ce faire. Si un pointeur vers un descripteur de sécurité auto-relatif existant est fourni à BuildSecurityDescriptor, il génère le nouveau descripteur de sécurité avec des informations extraites de ce descripteur de sécurité fusionnés avec de nouvelles informations de contrôle d’accès passées en tant que paramètres dans l’appel de fonction. Le propriétaire et le groupe sont éventuellement spécifiés par les structures TRUSTEE passées à la fonction. Le descripteur de sécurité créé par BuildSecurityDescriptor est au format auto-relatif .

En outre, l’API Windows fournit un ensemble de fonctions permettant de fusionner les informations de sécurité du client avec des informations héritées du descripteur de sécurité d’un objet parent ou d’un descripteur de sécurité par défaut. Les fonctions CreatePrivateObjectSecurity, GetPrivateObjectSecurity, SetPrivateObjectSecurity et DestroyPrivateObjectSecurity permettent de récupérer des informations par défaut à partir d’un jeton d’accès, de prendre en charge l’héritage et de manipuler des parties spécifiques du descripteur de sécurité. Cela peut être utile lorsqu’un client crée un objet privé dans une hiérarchie d’objets sécurisés. Par exemple, vous pouvez utiliser la fonction CreatePrivateObjectSecurity pour créer un descripteur de sécurité qui contient des ACÉ spécifiés par le client, des ACÉ hérités d’un objet parent et le propriétaire par défaut du jeton d’accès du client qui crée. Alors que BuildSecurityDescriptor crée des descripteurs de sécurité à partir des informations de contrôle d’accès transmises à l’appel de fonction ou à partir d’un descripteur de sécurité existant, CreatePrivateObjectSecurity crée un descripteur de sécurité uniquement à partir des informations contenues dans les descripteurs de sécurité existants.

La fonction LookupSecurityDescriptorParts obtient des informations de descripteur de sécurité à partir d’un descripteur de sécurité auto-relatif existant. Ces informations incluent la spécification du propriétaire et du groupe, le nombre d’AIC dans la liste SACL ou DACL et la liste des AIC dans la liste SACL ou DACL.