Changement de la sécurité d’accès sur les objets sécurisables
Les imprimantes, les services, les clés de Registre, les applications DCOM et les espaces de noms WMI sont des objets sécurisables. L’accès aux objets sécurisables est protégé par des descripteurs de sécurité, qui spécifient les utilisateurs qui y ont accès. À partir de Windows Vista, de nombreux objets sécurisables ont des méthodes permettant d’obtenir ou de définir le descripteur de sécurité. Avec les autorisations appropriées, vous pouvez lire ou changer des descripteurs de sécurité sur des objets sécurisables. À l’aide de ces méthodes, vous pouvez contrôler les comptes d’utilisateur ou les groupes qui ont accès à une imprimante, un service, un espace de noms WMI ou tout autre objet. Pour plus d’informations sur les descripteurs de sécurité et leur utilisation dans WMI, consultez Accès aux objets sécurisables WMI.
Les sections suivantes sont traitées dans cette rubrique :
- Objets et méthodes des descripteurs de sécurité
- Conversion entre les formats de descripteur de sécurité
- Problèmes de sécurité
- Rubriques connexes
Objets et méthodes des descripteurs de sécurité
La liste suivante contient les méthodes dont disposent les objets sécurisables pour vous permettre de lire ou de changer le descripteur de sécurité :
Espaces de noms WMI
Un fournisseur peut établir une sécurité qui permet uniquement à certains groupes d’accéder aux données d’un espace de noms WMI. La sécurité de l’espace de noms est contrôlée par des méthodes de la classe __SystemSecurity. À partir de Windows Vista, les méthodes GetSecurityDescriptor et SetSecurityDescriptor retournent et écrivent des objets __SecurityDescriptor. Pour plus d’informations, consultez Définition de descripteurs de sécurité d’espace de noms.
les clés de Registre
À partir de Windows Vista, vous pouvez sécuriser les clés de Registre pour qu’elles ne puissent pas être changées par des utilisateurs non autorisés. La classe StdRegProv dispose des méthodes GetSecurityDescriptor et SetSecurityDescriptor. Ces méthodes retournent et écrivent les objets Win32_SecurityDescriptor.
Imprimantes
À partir de Windows Vista, vous pouvez sécuriser l’accès aux instances de la classe Win32_Printer à l’aide des méthodes GetSecurityDescriptor et SetSecurityDescriptor. Ces méthodes retournent et écrivent les objets Win32_SecurityDescriptor.
Services
À partir de Windows Vista, vous pouvez sécuriser l’accès aux instances de la classe Win32_Service à l’aide des méthodes GetSecurityDescriptor et SetSecurityDescriptor. Ces méthodes retournent et écrivent les objets Win32_SecurityDescriptor.
Applications DCOM
Les instances d’application DCOM ont plusieurs descripteurs de sécurité. À partir de Windows Vista, utilisez les méthodes de la classe Win32_DCOMApplicationSetting pour obtenir ou changer les différents descripteurs de sécurité. Les descripteurs de sécurité sont retournés en tant qu’instances de la classe Win32_SecurityDescriptor.
Pour obtenir ou changer les autorisations de configuration, appelez les méthodes GetConfigurationSecurityDescriptor ou SetConfigurationSecurityDescriptor.
Pour obtenir ou changer les autorisations d’accès, appelez les méthodes GetAccessSecurityDescriptor ou SetAccessSecurityDescriptor.
Pour obtenir ou changer les autorisations de démarrage et d’activation, appelez les méthodes GetLaunchSecurityDescriptor ou SetLaunchSecurityDescriptor.
Fichiers
Les méthodes GetSecurityDescriptor et SetSecurityDescriptor se trouvent dans la classe Win32_LogicalFileSecuritySetting, plutôt que dans la classe CIM_DataFile.
Partages
Les méthodes GetSecurityDescriptor et SetSecurityDescriptor se trouvent dans la classe Win32_LogicalShareSecuritySetting, plutôt que dans la classe Win32_Share.
Notes
Quand une nouvelle liste SACL (liste de contrôle d’accès de sécurité) n’est pas spécifiée dans un appel à une méthode SetSecurityDescriptor, la liste SACL du descripteur de sécurité de l’objet sécurisable cible a une valeur NULL pour que le paramètre SACL précédent ne soit pas conservé.
Conversion entre les formats de descripteur de sécurité
Les descripteurs de sécurité sont des tableaux d’octets binaires complexes qui doivent normalement être créés et changés en C++. Une fois que vous avez utilisé l’une des méthodes Get pour obtenir le descripteur de sécurité, la classe Win32_SecurityDescriptorHelper fournit des méthodes qui convertissent les descripteurs de sécurité en langage SDDL (Security Descriptor Definition Language) ou en instances de Win32_SecurityDescriptor.
Vous pouvez manipuler les listes ACL (listes de contrôle d’accès) plus facilement dans les instances de Win32_SecurityDescriptor ou en SDDL. Pour plus d’informations sur la structure et l’utilisation des descripteurs de sécurité dans WMI, consultez Objets de descripteur de sécurité WMI.
En C++ ou en C#, utilisez des fonctions de conversion pour convertir les descripteurs de sécurité binaires en langage SDDL (Security Descriptor Definition Language). Pour modifier les valeurs des descripteurs de sécurité dans les applications C++, utilisez ConvertSecurityDescriptorToStringSecurityDescriptor et ConvertStringSecurityDescriptorToSecurityDescriptor.
Problèmes de sécurité
Il est recommandé d’effectuer les changements apportés aux descripteurs de sécurité avec la plus grande prudence pour ne pas compromettre la sécurité de l’objet. Sachez que l’ordre des entrées ACE (liste de contrôle d’accès) dans une liste DACL (liste de contrôle d’accès discrétionnaire) peut affecter la sécurité d’accès. Pour plus d’informations, consultez Ordre des entrées ACE dans une liste DACL.
Rubriques connexes