Partager via


Définition de la sécurité lors de la création d’un espace de noms

Le fichier MOF (Managed Object Format) qui crée un espace de noms peut également définir les descripteurs de sécurité de l’espace de noms en incluant le qualificateur NamespaceSecuritySDDL avec le descripteur de sécurité au format SDDL (Security Descriptor Definition Language).

Vous pouvez utiliser NamespaceSecuritySDDL pour sécuriser n’importe quel espace de noms. Vous pouvez également utiliser ce qualificateur dans un fichier MOF simple pour modifier le descripteur de sécurité sur un espace de noms existant. La chaîne SDDL est traitée par WMI pour établir la sécurité de l’espace de noms, mais n’est pas stockée en tant que chaîne. Si aucun descripteur de sécurité n’est spécifié, la sécurité par défaut est utilisée. Pour plus d’informations, consultez Définition des descripteurs de sécurité de l’espace de noms.

La procédure suivante définit le descripteur de sécurité pour l’espace de noms root\MyNamespace . La chaîne SDDL définit le propriétaire et le groupe aux utilisateurs authentifiés et spécifie une liste de contrôle d’accès discrétionnaire (DACL) qui est héritée par les espaces de noms enfants. La DACL accorde à l'utilisateur le droit de lire des données, d'exécuter des méthodes, d'écrire des données dans des classes de fournisseurs et d'utiliser l'accès à distance : WBEM_ENABLE, WBEM_METHOD_EXECUTE, WBEM_WRITE_PROVIDER, WBEM_REMOTE_ACCESS. Pour plus d’informations, consultez Accès aux espaces de noms WMI.

Pour définir une liste DACL d’espace de noms

  1. Créez un fichier MOF (Managed Object Format) ou modifiez votre fichier MOF existant qui définit l’espace de noms pour ajouter le qualificateur NamespaceSecuritySDDL avec la chaîne SDDL.

    L’exemple de code suivant montre que l’espace de noms à modifier est root\MyNamespace et que le fichier est nommé MyNamespace_security.mof.

    #pragma autorecover
    #pragma namespace("\\\\.\\root")
    [NamespaceSecuritySDDL ("O:BAG:BAD:(A;CI;0x60003;;;WD)")]
    Instance of __Namespace
    {
      Name = "MyNamespace";
    };
    
  2. N’oubliez pas que la chaîne SDDL respecte la casse : les lettres doivent être en majuscules.

    L’exemple de code suivant montre que les lettres « o » et « g » dans la chaîne SDDL sont en minuscules, ce qui entraînera une erreur avec Mofcomp.exe.

    #pragma autorecover
    #pragma namespace("\\\\.\\root")
    [NamespaceSecuritySDDL("o:BAg:BAD:(A;CI;0x60003;;;WD)")] 
    Instance of __Namespace
    {
      Name = "MyNamespace";
    };
    
  3. Exécutez Mofcomp.exe pour compiler le fichier MOF.

    c :\mofcomp MyNamespace_security.mof

    En C++, utilisez les méthodes IMoFCompiler .

  4. Si votre tentative de définition de la DACL de l’espace de noms échoue, considérez les messages d’erreur suivants :

    Erreur Descriptif
    WBEM_E_INVALID_PARAMETER Il n’existe aucun DACL hérité. Alternativement, l'appelant a violé la DACL ou le descripteur de sécurité (SD) dans l'espace de noms parent.
    WBEM_E_ACCESS_DENIED L’appelant n’est pas autorisé à mettre à jour le SDDL dans MOF.

     

Définition des descripteurs de sécurité de l’espace de noms

constantes de droits d’accès de l’espace de noms

constantes d’indicateur ACE de l’espace de noms

modification de la sécurité d’accès sur les objets sécurisables