Partager via


Récupération de la liste SACL d’un objet

Le descripteur de sécurité d’un objet dans services de domaine Active Directory peut contenir une liste de contrôle d’accès système (SACL). Une liste de contrôle d’accès contient des entrées de contrôle d’accès qui spécifient les types de tentatives d’accès qui génèrent des enregistrements d’audit dans le journal des événements de sécurité d’un contrôleur de domaine. N’oubliez pas qu’une saCL génère des entrées de journal uniquement sur le contrôleur de domaine où la tentative d’accès s’est produite, et non sur chaque contrôleur de domaine qui contient une réplica de l’objet.

Pour définir ou obtenir la SACL à partir d’un descripteur de sécurité d’objet, le privilège SE_SECURITY_NAME doit être activé dans le jeton d’accès du thread demandeur. Le groupe Administrateurs dispose de ce privilège par défaut et peut être affecté à d’autres utilisateurs ou groupes. Pour plus d’informations, consultez Droit d’accès SACL.

Pour obtenir et définir la SACL d’un objet de répertoire, utilisez l’interface IADsSecurityDescriptor . À l’aide de C++, la méthode IADsSecurityDescriptor::get_SystemAcl retourne un pointeur IDispatch . Appelez QueryInterface sur ce pointeur IDispatch pour obtenir une interface IADsAccessControlList et utilisez les méthodes de cette interface pour accéder aux aces individuels dans la liste de contrôle d’accès. Pour plus d’informations sur la procédure de modification d’une liste d’accès sacl, qui est similaire à celle de la modification d’une liste de contrôle d’accès, consultez Définition des droits d’accès sur un objet.

Pour énumérer les AAC dans une liste SACL, utilisez la méthode IADsAccessControlList::get__NewEnum , qui retourne un pointeur IUnknown . Appelez QueryInterface sur ce pointeur IUnknown pour obtenir une interface IEnumVARIANT . Utilisez la méthode IEnumVARIANT::Next pour énumérer les AES dans la liste de contrôle d’accès. Chaque ACE est retourné en tant que VARIANT qui contient un pointeur IDispatch ; n’oubliez pas que le membre vt est VT_DISPATCH. Appelez QueryInterface sur ce pointeur IDispatch pour obtenir une interface IADsAccessControlEntry pour l’ACE. Utilisez les méthodes d’interface IADsAccessControlEntry pour définir ou obtenir les composants d’un ACE.

Pour plus d’informations sur les listes SACL, consultez :