Partager via


Vérification de l’accès aux objets privés

Une application serveur protégée doit case activée les droits d’accès d’un client avant d’autoriser le client à accéder à un objet privé protégé. Pour ce faire, le serveur transmet un jeton d’emprunt d’identité, un descripteur de sécurité et un ensemble de droits d’accès demandés à AccessCheck. Les entrées de contrôle d’accès (ACA) dans la LISTE de contrôle d’accès du descripteur de sécurité spécifient les droits d’accès autorisés ou refusés à différents administrateurs. La fonction AccessCheck compare le fiduciaire dans chaque ACE aux fiduciaires identifiés dans le jeton d’emprunt d’identité. Pour obtenir une description de l’algorithme utilisé pour accorder ou refuser l’accès, consultez Comment les DACL contrôlent l’accès à un objet.

La fonction AccessCheckAndAuditAlarm effectue une case activée d’accès similaire. En outre, elle génère des enregistrements d’audit dans le journal des événements de sécurité en fonction de la SACL dans le descripteur de sécurité.

Les fonctions AccessCheckByType et AccessCheckByTypeAndAuditAlarm sont similaires à AccessCheck et AccessCheckAndAuditAlarm, sauf qu’elles vous permettent d’case activée accès aux sous-objets d’un objet, tels que les jeux de propriétés ou les propriétés. Les fonctions AccessCheckByTypeResultList et AccessCheckByTypeResultListAndAuditAlarm sont également similaires à AccessCheck, sauf qu’elles fournissent l’accès case activée résultats pour chaque sous-objet dans une hiérarchie des propriétés et des jeux de propriétés de l’objet. Ces fonctions utilisent la structure OBJECT_TYPE_LIST pour décrire la hiérarchie des objets pour lesquels l’accès est vérifié. Les fonctions qui génèrent un message d’audit utilisent le type d’énumération AUDIT_EVENT_TYPE pour indiquer si l’objet en cours de vérification est un objet de service d’annuaire. Pour plus d’informations sur la hiérarchie d’un objet et de ses sous-objets, consultez AES pour contrôler l’accès aux propriétés d’un objet.

Les droits d’accès demandés passés aux fonctions AccessCheck et AccessCheckAndAuditAlarm ne doivent pas inclure de droits d’accès génériques. Le serveur peut utiliser la fonction MapGenericMask pour convertir tous les droits d’accès génériques en droits spécifiques et standard correspondants en fonction du mappage spécifié dans la structure GENERIC_MAPPING .

Les fonctions AreAllAccessesGranted et AreAnyAccessesGranted comparent un masque d’accès demandé avec un masque d’accès accordé.

Pour obtenir un exemple de code qui utilise la fonction AccessCheck , consultez Vérification de l’accès au client avec des listes de contrôle d’accès en C++.

La fonction ConvertToAutoInheritPrivateObjectSecurity crée et retourne un descripteur de sécurité dans un format qui permet la propagation automatique des AE hérités. Ce descripteur de sécurité contient toutes les ACÉ, héritées et non décrites, dans le descripteur de sécurité actuel et est au format auto-relatif . La fonction ConvertToAutoInheritPrivateObjectSecurity détermine si les ACÉ sont hérités ou non en comparant tous les ACÉ dans le descripteur de sécurité actuel avec tous les ACÉ de son descripteur de sécurité parent. Il n’y a peut-être pas de correspondance un-à-un entre les deux groupes d’AE. Par instance, un ACE qui autorise l’autorisation de lecture/écriture peut être équivalent à deux ACE : un ACE qui autorise l’autorisation de lecture et un ACE qui autorise l’autorisation d’écriture. Un descripteur de sécurité parent ne peut pas être fourni lorsque le descripteur de sécurité actuel est le parent.