Comment : ajouter des groupes de codes à l'aide de Caspol.exe

Mise à jour : novembre 2007

Exemple de commandes d'ajout de groupes

Lorsque vous utilisez l'outil Code Access Security Policy Tool (Caspol.exe) pour ajouter un groupe de codes à une hiérarchie de groupes de codes, vous devez définir à la fois une condition d'appartenance et un jeu d'autorisations pour le nouveau groupe de codes. Vous devez aussi définir l'étiquette ou le nom du groupe de codes parent dans lequel vous ajoutez le nouveau groupe de codes. Vous pouvez aussi définir facultativement d'autres indicateurs sur le groupe de codes. Pour plus d'informations sur ces indicateurs, consultez Outil Code Access Security Policy Tool (Caspol.exe).

Pour ajouter un groupe de codes à une hiérarchie de groupes de codes

  • Tapez la commande suivante à l'invite de commande :

    caspol [-enterprise|-machine|-user] -addgroup {parentLabel|parentName} mship pset_name [-exclusive {on|off}][-levelfinal {on|off}] [-name name] [-description description text]

    Spécifiez l'option du niveau de stratégie avant l'option –addgroup. Si vous ne spécifiez pas l'option du niveau de stratégie, Caspol.exe ajoute le groupe de codes au niveau de stratégie par défaut. Pour les administrateurs d'ordinateurs, le niveau par défaut est le niveau de stratégie de l'ordinateur ; pour les autres, il s'agit du niveau de stratégie de l'utilisateur. Dans cette commande :

    • L'argument parentLabel est l'étiquette du groupe de codes parent pour le nouveau groupe de codes. Vous pouvez aussi utiliser le nom du groupe de codes du parent (parentName) au lieu de parentLabel. Pour obtenir cette information, affichez la liste des groupes de codes comme décrit dans Comment : afficher des groupes de codes à l'aide de Caspol.exe.

    • L'argument pset_name est le nom du jeu d'autorisations à associer au nouveau groupe de codes. Avant de pouvoir associer un jeu d'autorisations nommé à un groupe de codes, il doit être connu au niveau de stratégie où vous ajoutez le nouveau groupe de codes. Par exemple, si vous voulez associer un jeu d'autorisations MyPset à un nouveau groupe de codes dans la stratégie de l'utilisateur, vous devez déjà avoir ajouté le jeu d'autorisations MyPset à la stratégie de l'utilisateur. Un jeu d'autorisations n'a pas besoin d'être ajouté au préalable uniquement lorsque vous utilisez l'un des jeux d'autorisations standard fournis par le .NET Framework. Pour apprendre comment ajouter un jeu d'autorisations à un niveau de stratégie, consultez Comment : ajouter des jeux d'autorisations à l'aide de Caspol.exe.

    • L'argument mship est la condition d'appartenance pour le nouveau groupe de codes. Pour obtenir la liste des valeurs de l'argument mship, consultez Outil Code Access Security Policy Tool (Caspol.exe).

Remarque :

Vous ne pouvez pas utiliser l'option –addgroup pour ajouter un groupe de codes à plusieurs niveaux à la fois. Chacun de ces ajouts doit être fait séparément, car différentes étiquettes de groupe de codes et la disponibilité de certains jeux d'autorisations peuvent provoquer une confusion.

Exemple de commandes d'ajout de groupes

Les procédures suivantes décrivent comment procéder à certaines des tâches d'ajout de groupes de codes les plus courantes.

Pour ajouter un groupe de codes qui cible du code provenant de l'intranet

  • Utilisez l'option -zone et spécifiez Intranet comme valeur d'appartenance.

    La commande suivante associe le jeu d'autorisations Everything à du code provenant de l'intranet. Le groupe de codes reçoit également le nom Intranet_CG. Vous pouvez utiliser ce nom pour faire référence au groupe de codes nouvellement créé plutôt que d'utiliser ses étiquettes numériques.

    caspol –addgroup 1.1. –zone Intranet Everything –name "Intranet_CG"
    

Pour ajouter un groupe de codes qui cible du code provenant de sites de confiance Internet Explorer

  • Utilisez l'option –zone et spécifiez Trusted comme valeur d'appartenance.

    La commande suivante associe le jeu d'autorisations LocalIntranet à du code provenant de la zone de sites de confiance et insère le nouveau groupe de codes en tant qu'enfant de la racine de la hiérarchie de groupes de codes.

    caspol -addgroup All_Code -zone Trusted LocalIntranet
    

Pour ajouter un groupe de codes qui cible un éditeur de logiciels spécifique

  • Utilisez l'option –pub et spécifiez un fichier de certificat, un fichier signé ou la représentation hexadécimale d'un certificat X.509.

    Les fichiers provenant d'un éditeur de logiciels doivent être signés de manière appropriée pour que cette condition d'appartenance fonctionne. La condition d'appartenance doit être construite sur la base d'un fichier de certificat réel ou d'un fichier .exe signé.

    Supposons que le fichier de certificat pour FourthCoffee (FourthCoffee.cer) soit disponible. La commande suivante ajoute un groupe de codes dans la stratégie de l'ordinateur pour le code publié par FourthCoffee et associe le jeu d'autorisations Nothing au nouveau groupe. Le groupe de codes est ajouté en tant que groupe de codes enfant de la racine.

    caspol –machine –addgroup 1 –pub –cert FourthCoffee.cer Nothing
    

Pour ajouter un groupe de codes qui cible du code provenant d'un site Web particulier

  • Utilisez l'option**–site** et spécifiez l'URL du site Web.

    Remarque :

    En raison de la possibilité d'usurpation de noms DNS, l'utilisation d'un site Web comme condition d'appartenance n'est pas un moyen efficace d'établir l'identité du code. Lorsque cela est possible, utilisez une condition d'appartenance à nom fort, une condition d'appartenance d'un éditeur ou la condition d'appartenance de hachage.

    La commande suivante associe le jeu d'autorisations Intranet à du code provenant de www.microsoft.com.

    caspol –addgroup 1 –site www.microsoft.com Intranet
    

Pour ajouter un groupe de codes qui cible du code provenant d'une URL particulière

  • Utilisez l'option –url et spécifiez l'URL du site.

    L'URL doit inclure un protocole tel que http://, http:// ou ftp://. En outre, un caractère générique (*) peut être utilisé pour spécifier plusieurs assemblys pour une même URL.

    Remarque :

    Parce qu'une URL peut être identifiée à l'aide de plusieurs noms, l'utilisation d'une URL comme condition d'appartenance n'est pas un moyen sûr d'établir l'identité du code. Lorsque cela est possible, utilisez une condition d'appartenance à nom fort, une condition d'appartenance d'un éditeur ou la condition d'appartenance de hachage.

    caspol –user –addgroup 1 –url https://www.contoso.com/bin/* FullTrust
    caspol –user –addgroup 1 –url https://www.contoso.com/bin/MyAssembly.dll FullTrust
    

Pour ajouter un groupe de codes qui substitue d'autres autorisations à un niveau de stratégie

  • Définissez l'indicateur –exclusive pour le nouveau groupe de codes.

    La commande suivante ajoute un groupe de codes sous le groupe de codes Intranet_cg. Le nouveau groupe de codes accorde le jeu d'autorisations Everything si la zone est de confiance, substituant n'importe quelle autre autorisation accordée par d'autres groupes de codes.

    caspol –addgroup "Intranet_cg" –zone Trusted Everything –exclusive on
    

Pour ajouter un groupe de codes avec une condition d'appartenance personnalisée

  • Utilisez l'option –custom et spécifiez un fichier XML qui contient la sérialisation XML de la condition d'appartenance personnalisée.

    Caspol.exe prend en charge l'utilisation des conditions d'appartenance personnalisées dans la stratégie, ce qui rend le système de stratégie extrêmement flexible.

    La commande suivante ajoute un nouveau groupe de codes à la racine de la stratégie de l'utilisateur. Ce nouveau groupe de codes contient une condition d'appartenance personnalisée trouvée dans le fichier NewMembershipCondition.xml et accorde une confiance totale aux assemblys correspondant à cette condition d'appartenance.

    caspol –user –addgroup All_Code –custom NewMembershipCondition.xml FullTrust
    

Pour ajouter un groupe de codes avec un nom et une description

  1. Utilisez l'option –name et spécifiez un nom pour le groupe de codes. Les noms contenant des espaces doivent être entourés de guillemets doubles (" ").

  2. Utilisez l'option –description et spécifiez une description pour le groupe de codes.

Vous pourrez utiliser le nom par la suite pour faire référence à un groupe de codes. Le nom offre une meilleure prise en charge que les étiquettes numériques pour l'écriture des scripts de modification de la stratégie.

La stratégie par défaut est livrée avec des noms par défaut. S'ils ne sont pas explicitement modifiés par un administrateur, les noms par défaut facilitent, pour les administrateurs utilisant Caspol.exe, l'accès à des groupes de codes spécifiques à travers les stratégies et les ordinateurs.

La commande suivante ajoute un groupe de codes sous le groupe All_Code dans la stratégie de l'ordinateur. Le nouveau groupe de codes vérifie la présence d'un nom fort FourthCoffee (trouvé sur Signed.exe) et accorde FullTrust à tout le code ainsi signé. Le groupe de codes est nommé FouthCoffeeStrongName et reçoit une description appropriée.

caspol –machine –addgroup All_Code –strong –file signed.exe FullTrust –name FouthCoffeeStrongName –description "Code group granting trust to code signed by FourthCoffee"
Remarque :

Si le même nom est présent dans plusieurs groupes de codes, Caspol.exe se résout dans le premier groupe de codes qu'il peut trouver avec le nom donné. Il recherche tous les groupes de codes enfants d'un groupe de codes avant de chercher des groupes frères.

Voir aussi

Concepts

Modèle de stratégie de sécurité

Référence

Outil Code Access Security Policy Tool (Caspol.exe)

Autres ressources

Configuration de la stratégie de sécurité à l'aide de l'outil Code Access Security Policy Tool (Caspol.exe)

Configuration des groupes de codes à l'aide de Caspol.exe