Skip to main content

Paramètres gérés par l’entreprise

Comprendre le schéma des paramètres managés d’entreprise utilisé par Copilot les clients.

Utilisez cette référence pour comprendre les clés actuellement prises en charge dans managed-settings.json.

Pour connaître les méthodes de déploiement et les clients pris en charge, consultez Configuration des paramètres gérés par l’entreprise.

Règles de précédence

Lorsque plusieurs sources de paramètres sont présentes, les paramètres antérieurs à cette liste sont prioritaires sur les paramètres plus loin dans la liste :

  1. Paramètres gérés par MDM
  2. Paramètres gérés par le serveur
  3. Paramètres basés sur des fichiers
  4. Paramètres au niveau de l’utilisateur

Dans Copilot pour CLI, la sandbox clé est une exception à ces règles de précédence. Les restrictions de bac à sable managée à partir des paramètres gérés par GPM, gérés par serveur et basés sur des fichiers se combinent entre elles et avec les paramètres de bac à sable de l’utilisateur dans la direction la plus restrictive.

Clés prises en charge

CléPurposeCopilot pour CLIVS CodeGitHub application CopilotAgent cloud CopilotJetBrains IDEs
permissions.disableBypassPermissionsModeDésactive le contournement ou le comportement de type YOLO consistant à tout autoriser
permissions.modelDéfinit la sélection automatique du modèle comme valeur par défaut pour les nouvelles conversations
enabledPluginsActive ou désactive des plug-ins spécifiques par clé
extraKnownMarketplacesAjoute des places de marché de plug-in auxquelles les utilisateurs peuvent accéder
strictKnownMarketplacesLimite l’installation du plug-in aux places de marché répertoriées explicitement
telemetryConfigure l’export OpenTelemetry et le routage des données d’utilisation Copilot vers le collecteur de votre choix
remoteControlLimite si les sessions hébergées sur cet appareil peuvent être contrôlées à distance, en fonction de l’état d’autorisation de l’authentification unique du client contrôlé pour les organisations répertoriées. N’affecte pas la capacité de l’utilisateur à contrôler à distance les sessions hébergées sur d’autres appareils
allowedMcpServersDéfinit une liste verte de serveurs MCP autorisés à s’exécuter. Tout serveur non mis en correspondance n’est pas bloqué. Omettre d’autoriser tous les serveurs, soumis à des règles de refus
deniedMcpServersDéfinit les serveurs MCP qui sont bloqués sans condition, même s’ils correspondent également à une entrée dans allowedMcpServers
sandboxApplique les restrictions minimales de bac à sable local pour l’exécution des commandes, le système de fichiers et l’accès réseau, les informations d’identification et les serveurs MCP et LSP locaux

Application de différents paramètres aux équipes d’entreprise

Pour les déploiements gérés par le serveur, l’entreprise peut appliquer une gouvernance différente aux groupes d’utilisateurs en fonction de leur appartenance à l’équipe d’entreprise. L’entreprise définit tous les paramètres : l’appartenance à l’équipe détermine uniquement les utilisateurs qui reçoivent un ensemble de valeurs donné.

Pour rendre une clé éligible pour les valeurs spécifiques à l’équipe, marquez-la comme substituable à managed-settings.json l’aide de la { "overridable": <VALUE> } syntaxe. Une clé substituable utilise la valeur de l’équipe lorsqu’elle est définie ou revient à votre entreprise par défaut lorsque l’équipe la laisse non définie. La { "overridable": <VALUE> } syntaxe s’applique aux clés et permissions.model``permissions.disableBypassPermissionsMode``allowedMcpServers aux deniedMcpServersclés. Les clés non marquées comme substituables restent une décision au niveau de l’entreprise que les équipes ne peuvent pas modifier.

enabledPlugins et extraKnownMarketplaces fonctionnent de façon additive. L’entreprise managed-settings.json définit une base de référence et un fichier d’équipe d’entreprise peut ajouter d’autres plug-ins et des places de marché. Pour connaître les étapes d’installation complètes, consultez Configuration des paramètres gérés par l’entreprise.

Exemple de configuration

L’exemple suivant montre ces clés dans un fichier de paramètres managés.

{
  "permissions": {
    "disableBypassPermissionsMode": "disable",
    "model": "auto"
  },
  "enabledPlugins": {
    "my-plugin@agent-skills": true
  },
  "extraKnownMarketplaces": {
    "agent-skills": {
      "source": {
        "source": "github",
        "repo": "OWNER/REPO"
      }
    }
  },
  "strictKnownMarketplaces": [
    {
      "source": "github",
      "repo": "OWNER/REPO"
    }
  ],
  "telemetry": {
    "enabled": true,
    "endpoint": "https://otel-collector.example.com",
    "protocol": "http/protobuf",
    "captureContent": false,
    "lockCaptureContent": true,
    "serviceName": "copilot",
    "resourceAttributes": {
      "deployment.environment": "production"
    },
    "headers": {
      "Authorization": "Bearer TOKEN"
    }
  },
  "remoteControl": {
    "mode": "requireSSO",
    "githubDotComOrganizations": ["ORG-NAME"]
  },
  "allowedMcpServers": [
    { "serverUrl": "https://api.githubcopilot.com/*" },
    { "serverCommand": ["npx", "@playwright/mcp@latest"] },
    { "serverCommand": ["cmd", "/c", "uvx", "markitdown-mcp"] }
  ],
  "deniedMcpServers": [
    {
      "serverCommand": [
        "npx",
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/"
      ]
    }
  ],
  "sandbox": {
    "enabled": true,
    "allowBypass": false,
    "sandboxMcpServers": true,
    "sandboxLspServers": true
  }
}

enabledPlugins

Définit les plug-ins qui sont automatiquement installés ou bloqués pour tous les utilisateurs d’entreprise. Chaque entrée utilise le format PLUGIN-NAME@MARKETPLACE-NAME comme clé, avec une valeur booléenne : true pour exiger que le plug-in soit activé ou false qu’il soit désactivé. Consultez « À propos des normes de plug-in gérés par l’entreprise ».

extraKnownMarketplaces

Définit des places de marché de plug-in supplémentaires disponibles pour les utilisateurs. Chaque entrée est un objet de marketplace nommé contenant une propriété source. Les types sources suivants sont pris en charge :

  • "github" — nécessite repo au format OWNER/REPO ; avec en option ref (branche, balise ou SHA) et path (sous-répertoire)
  • "git" — exige url; facultatif ref et path
  • "directory" — nécessite path

Consultez « À propos des normes de plug-in gérés par l’entreprise ».

strictKnownMarketplaces

Limite l’installation du plug-in aux places de marché définies explicitement par l’entreprise. Un tableau vide signifie un verrouillage complet. Chaque entrée est un objet marketplace avec une source propriété indiquant le type source. Les types sources suivants sont pris en charge :

  • "github" — nécessite repo au format OWNER/REPO ; ref et path facultatifs
  • "git" — exige url; facultatif ref et path
  • "url"— nécessite url; objet facultatif headers
  • "npm" — nécessite package
  • "file" — nécessite path
  • "directory" — nécessite path
  • "hostPattern" — nécessite hostPattern (hôtes de la place de marché correspondant à regex)
  • "pathPattern" — nécessite pathPattern (expression régulière correspondant aux chemins de la marketplace)

permissions

disableBypassPermissionsMode

Empêche les utilisateurs d’activer le mode de contournement (également appelé « mode YOLO »). Le mode contournement permet à un agent d’exécuter des commandes, d’accéder aux fichiers et d’extraire des URL sans demander d’approbation.

Lorsque vous définissez disableBypassPermissionsMode sur "disable", les utilisateurs ne peuvent pas activer le mode de contournement :

  • Dans Copilot pour CLI, toutes les options de ligne de commande permettant d’autoriser toutes les autorisations (--yolo, --allow-allet l’individu --allow-all-tools, --allow-all-pathset --allow-all-urls les options) sont supprimées au démarrage et ne peuvent pas accorder d’autorisations élevées. /yolo Les /allow-all commandes et barres obliques sont également bloquées.
  • Dans VS Code, le paramètre global d’approbation automatique (chat.tools.global.autoApprove) est désactivé et ne peut pas être réactivé.
  • Dans le GitHub application Copilot, le paramètre « Tout autoriser » de « Autorisations de l’outil » est bloqué dans les paramètres de session.
  • Cette clé est substituable par le mappage d’équipe d’entreprise. Dans votre managed-settings.json, utilisez la { "overridable": "disable" } syntaxe pour spécialiser la configuration de la clé par équipe. Vous pouvez ensuite définir "disableBypassPermissionsMode": "unmanaged" dans un fichier de paramètres d’équipe, en fournissant une spécialisation prioritaire managed-settings.json pour les membres de l’équipe concernée.

modèle

Définit la sélection automatique du modèle comme valeur par défaut pour les nouvelles conversations. Consultez « À propos de Copilotsélection automatique de modèle ».

  • Lorsque vous définissez permissions.model sur "auto", les nouvelles sessions utilisent le modèle Auto, sauf si l’utilisateur spécifie un modèle différent pour chaque conversation.
  • Cette clé est substituable par le mappage d’équipe d’entreprise. Dans votre managed-settings.json, utilisez la { "overridable": "auto" } syntaxe pour spécialiser la configuration de la clé par équipe. Vous pouvez ensuite définir "model": "unmanaged" dans un fichier de paramètres d’équipe, en fournissant une spécialisation prioritaire managed-settings.json pour les membres de l’équipe concernée.

données de télémétrie

Configure l’exportation OpenTelemetry et le routage Copilot des données d’utilisation vers le collecteur de votre choix.

Cette propriété est prise en charge pour Copilot pour CLI et VS Code.

Lorsque vous définissez la propriété telemetry, la télémétrie Copilot est envoyée au point de terminaison que vous spécifiez. Les sous-propriétés suivantes sont prises en charge :

  • enabled: définissez sur true pour activer l’exportation de télémétrie, ou sur false pour la désactiver.
  • endpoint: URL de votre collecteur OTLP (par exemple, https://otel-collector.example.com).
  • protocol: protocole de transport pour l’exportation de télémétrie. Les valeurs acceptées sont "http/json" et "http/protobuf".
  • captureContent : définissez cette valeur sur true pour inclure le contenu des invites et des réponses dans la charge utile de télémétrie, ou sur false pour l’exclure.
  • lockCaptureContent: défini sur true pour empêcher les utilisateurs de modifier le paramètre captureContent.
  • serviceName: étiquette pour le nom du service de télémétrie (par exemple, "copilot").
  • resourceAttributes: objet d’attributs de ressource OpenTelemetry à attacher à toutes les données de télémétrie exportées (par exemple, {"deployment.environment": "production"}).
  • headers: Un objet d’en-têtes HTTP à inclure avec chaque requête de télémétrie (par exemple, un en-tête Authorization pour votre collecteur).

remoteControl

Limite si Copilot les sessions hébergées sur un appareil peuvent être contrôlées à distance. Cela n’affecte pas la capacité d’un utilisateur à contrôler à distance ses sessions hébergées sur d’autres appareils.

  • mode: défini pour "disabled" empêcher le contrôle à distance des sessions sur l’appareil, "requireSSO" pour autoriser uniquement le contrôle à distance d’un client autorisé par l’authentification unique pour les organisations répertoriées dans githubDotComOrganizations, ou "enabled" pour l’autoriser sans restriction.
  • githubDotComOrganizations: tableau de connexions d’organisation. Obligatoire quand mode est "requireSSO".

allowedMcpServers

Définit une liste verte de serveurs MCP autorisés à s’exécuter. Quand il est défini, seuls les serveurs correspondant à au moins une entrée sont autorisés. Tout serveur qui n’est pas mis en correspondance est bloqué.

Omettez entièrement cette clé pour autoriser tous les serveurs, sous réserve des entrées dans deniedMcpServers. Définissez-le sur un tableau vide pour bloquer tous les serveurs, à l’exception des serveurs par défaut intégrés.

Lorsque plusieurs sources de paramètres définissent allowedMcpServers, la liste verte effective est l’intersection de toutes les sources. Un serveur doit être autorisé par chaque source à s’exécuter.

Chaque entrée doit contenir exactement une propriété de matcher.

PropriétéComportement de correspondanceServeurs applicables
serverNameCorrespond exactement à l’étiquette de serveur affectée par l’utilisateur. Les caractères génériques ne sont pas pris en charge. Étant donné que les utilisateurs choisissent des noms de serveur, utilisez serverUrl ou serverCommand lorsque vous devez appliquer l’identité d’un serveur.N’importe quel serveur. Les serveurs en mémoire peuvent uniquement utiliser serverName.
serverUrlCorrespond à une URL de serveur distant. Prend en charge * les caractères génériques pour les sous-domaines ou les préfixes de chemin d’accès, par exemple, https://mcp.example.com/* ou https://*.internal.example.com/*.Serveurs distants qui se connectent via des événements HTTP ou envoyés par un serveur (SSE). Cette propriété ne s’applique pas aux serveurs locaux, même s’ils ont une URL.
serverCommandCorrespond à la commande exacte et à chaque argument d’un serveur local, par exemple ["npx", "-y", "my-mcp-server"]. Les caractères génériques et l’extension de ligne de commande ne sont pas pris en charge.Serveurs locaux qui utilisent l’entrée et la sortie standard (stdio). Cette propriété ne s’applique pas aux serveurs distants, même s’ils ont une commande.

Cette clé est substituable pour les équipes d’entreprise. Encapsulez les objets matcher au overridable niveau de l’entreprise, puis utilisez la syntaxe régulière pour définir les listes d’autorisation et les listes de refus dans le fichier de chaque équipe.

Canonisation d’URL

Avant de comparer un serverUrl modèle avec une URL de serveur, le client normalise les deux valeurs :

  • Convertit le schéma et l’hôte en minuscules.
  • Convertit les noms d’hôtes internationalisés ou Unicode en Punycode.
  • Supprime le port par défaut, :80 pour HTTP ou :443 https.
  • Décode les octets hôtes en pourcentage encodés. Par exemple, %65vil devient evil.
  • Supprime les fragments d’URL et les points de fin des noms DNS.
  • Empêche les caractères génériques dans le composant d’autorité de correspondre sur la / limite dans le chemin d’accès.

deniedMcpServers

Définit les serveurs MCP qui sont bloqués sans condition. Un serveur correspondant à une entrée est bloqué même s’il correspond également à une entrée dans allowedMcpServers. Les règles de refus sont toujours prioritaires sur les règles d’autorisation.

Les Copilot serveurs internes, tels que le serveur MCP intégré GitHub , sont exemptés des règles de refus et ne peuvent pas être bloqués.

Lorsque plusieurs sources de paramètres définissent deniedMcpServers, la liste de refus effective est l’union de toutes les sources. Un serveur bloqué par n’importe quelle source est bloqué pour tous.

Chaque entrée utilise les mêmes propriétés, ou serverName les mêmes serverUrlpropriétés décrites dans serverCommand. allowedMcpServers

sandbox

Applique les restrictions minimales de bac à sable local pour Copilot pour CLI. Les paramètres de bac à sable managé imposent des restrictions plutôt que des valeurs par défaut :

  • Pour les paramètres de force, une valeur gérée d’appliquer true le paramètre. false ou l’omission laisse la configuration de l’utilisateur inchangée.
  • Pour les paramètres de fonctionnalité, une valeur managée d’interdiction false de la fonctionnalité. true ou l’omission laisse la configuration de l’utilisateur inchangée.
  • Les listes de chemins d’accès en lecture/écriture managée et en lecture seule limitent les octrois configurés par l’utilisateur, tandis que les chemins d’accès gérés refusés s’ajoutent aux dénis configurés par l’utilisateur.

Les sous-propriétés suivantes sont prises en charge :

  • enabled: true nécessite le bac à sable (sandbox) et empêche les utilisateurs de le désactiver.
  • allowBypass: false empêche le modèle de demander qu’une commande individuelle s’exécute en dehors du bac à sable.
  • addCurrentWorkingDirectory: false empêche Copilot pour CLI d’ajouter automatiquement le répertoire de travail actuel aux chemins d’accès en lecture/écriture du bac à sable.
  • sandboxMcpServers: true nécessite des serveurs MCP locaux démarrés par Copilot pour CLI l’exécution dans le bac à sable. Les serveurs MCP distants ne s’exécutent pas dans le bac à sable local.
  • sandboxLspServers: true nécessite que les serveurs linguistiques soient démarrés Copilot pour CLI pour s’exécuter dans le bac à sable.
  • gitAuth: false empêche Copilot pour CLI l’injection d’un GitHub jeton pour les opérations HTTPS Git authentifiées dans le bac à sable.
  • ghAuth: false empêche Copilot pour CLI l’injection d’un GitHub jeton dans GitHub CLI le bac à sable.
  • allowDevToolAccess: false empêche l’accès automatique à la configuration des outils de développement, aux caches, aux registres et aux chaînes d’outils. Ces emplacements peuvent contenir des informations d’identification ou des jetons de Registre de packages. La désactivation de l’accès peut entraîner la restauration des packages, les opérations de Registre authentifiées ou les builds qui utilisent des caches partagés pour échouer, sauf si vous accordez explicitement les chemins requis.
  • userPolicy: objet qui configure les restrictions de ceinture de sécurité spécifiques au système de fichiers, au réseau et au macOS. Les propriétés prises en charge sont décrites dans les sections suivantes.

sandbox.userPolicy.filesystem

Configure l’accès au système de fichiers pour les processus en bac à sable (sandbox). Les chemins doivent être absolus. Les listes d’octroi managées sont mises en correspondance par rapport aux listes configurées par l’utilisateur par chaîne de chemin d’accès exacte, et non par couverture de chemin parent ou enfant.

  • readwritePaths: tableau de chemins d’accès que les processus en bac à sable peuvent lire et écrire. Un chemin configuré par l’utilisateur reste disponible uniquement si sa chaîne exacte apparaît également dans chaque source managée qui spécifie cette propriété. Un tableau managé vide supprime tous les octrois de chemins d’accès en lecture/écriture configurés par l’utilisateur, mais ne supprime pas l’accès assemblé séparément, comme les répertoires temporaires ou le répertoire de travail actif.
  • readonlyPaths: tableau de chemins d’accès que les processus en bac à sable peuvent lire, mais pas écrire. Un chemin configuré par l’utilisateur reste disponible uniquement si sa chaîne exacte apparaît également dans chaque source managée qui spécifie cette propriété. Un tableau managé vide supprime tous les octrois de chemins en lecture seule configurés par l’utilisateur, mais ne supprime pas l’accès assemblé séparément.
  • deniedPaths: tableau de chemins auxquels les processus en bac à sable ne peuvent pas accéder. Une valeur managée ajoute, au lieu de remplacer, les chemins d’accès refusés d’un utilisateur.

sandbox.userPolicy.network

Configure l’accès réseau pour les processus en bac à sable (sandbox).

  • allowOutbound: false bloque l’accès réseau sortant.
  • allowLocalNetwork: false empêche l’accès au réseau local.

Le comportement du réseau varie selon le système d’exploitation. En particulier, un proxy n’est pas une limite complète de contrôle de sortie, car certaines applications peuvent ignorer les paramètres de proxy.

sandbox.userPolicy.seatbelt

Configure les options de ceinture de sécurité spécifiques à macOS.

  • keychainAccess: false empêche les processus en bac à sable d’accéder au trousseau macOS.