Partager via


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

Le fichier MOF (Managed Object Format) qui crée un espace de noms peut également définir les descripteurs de sécurité pour 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é Namepace.

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 sur les utilisateurs authentifiés et spécifie une liste de contrôle d’accès discrétionnaire héritée par les espaces de noms enfants. La liste de contrôle d’accès discrétionnaire permet à l’utilisateur de lire des données, d’exécuter des méthodes, d’écrire des données dans des classes fournisseur 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.

Définir une liste de contrôle d’accès discrétionnaire 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 les lettres « o » et « g » dans la chaîne SDDL en minuscules et entraîne le retour d’une erreur par 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 liste de contrôle d’accès discrétionnaire de l’espace de noms échoue, tenez compte des messages d’erreur suivants :

    Erreur Description
    WBEM_E_INVALID_PARAMETER Il n’existe pas de liste de contrôle d’accès discrétionnaire héritée. L’appelant a également enfreint la liste de contrôle d’accès discrétionnaire ou le SD dans l’espace de noms parent.
    WBEM_E_ACCESS_DENIED L’appelant n’a pas l’autorisation de mettre à jour le SDDL dans MOF.

     

Définition de descripteurs de sécurité d’espace de noms

Constantes de droits d’accès aux espaces de noms

Constantes d’indicateur d’entrée ACE d’un espace de noms

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