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 :
- Paramètres gérés par MDM
- Paramètres gérés par le serveur
- Paramètres basés sur des fichiers
- 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 du sandbox géré issues des paramètres gérés par MDM, par le serveur et basés sur des fichiers se combinent entre elles ainsi qu’avec les paramètres de sandbox de l’utilisateur selon le niveau le plus restrictif.
Clés prises en charge
| Clé | Purpose | Copilot pour CLI | VS Code | GitHub application Copilot | Agent cloud Copilot | JetBrains IDEs |
|---|---|---|---|---|---|---|
permissions.disable | Désactive le contournement ou le comportement de type YOLO consistant à tout autoriser | |||||
model | Définit la sélection automatique du modèle comme valeur par défaut pour les nouvelles conversations | |||||
enabledPlugins | Active ou désactive des plug-ins spécifiques par clé | |||||
extra | Ajoute des places de marché de plug-in auxquelles les utilisateurs peuvent accéder | |||||
strict | Limite l’installation du plug-in aux places de marché répertoriées explicitement | |||||
telemetry | Configure l’export OpenTelemetry et le routage des données d’utilisation Copilot vers le collecteur de votre choix | |||||
remoteControl | Limite la possibilité que les sessions hébergées sur cet appareil soient contrôlées à distance, en fonction du statut d’autorisation SSO du client de contrôle 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 | |||||
allowedMcpServers | Définit une liste d’autorisation des serveurs MCP autorisés à être exécutés. Tout serveur qui ne correspond à aucune règle est bloqué. Omettre d’autoriser tous les serveurs, soumis à des règles de refus | |||||
deniedMcpServers | Définit les serveurs MCP qui sont bloqués sans condition, même s’ils correspondent également à une entrée dans allowedMcpServers | |||||
sandbox | Applique 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é redéfinissable utilise la valeur de l’équipe lorsqu’une valeur est définie, ou utilise la valeur par défaut de votre entreprise lorsque l’équipe n’en définit pas. La syntaxe { "overridable": <VALUE> } s’applique aux touches model, permissions.disableBypassPermissionsMode, allowedMcpServers et deniedMcpServers. 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.
{
"model": "auto",
"permissions": {
"disableBypassPermissionsMode": "disable"
},
"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
}
}
extensions activées
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écessiterepoau formatOWNER/REPO; avec en optionref(branche, balise ou SHA) etpath(sous-répertoire)"git"— exigeurl; facultatifrefetpath"directory"— nécessitepath
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écessiterepoau formatOWNER/REPO;refetpathfacultatifs"git"— exigeurl; facultatifrefetpath"url"— nécessiteurl; objet facultatifheaders"npm"— nécessitepackage"file"— nécessitepath"directory"— nécessitepath"hostPattern"— nécessitehostPattern(hôtes de la place de marché correspondant à regex)"pathPattern"— nécessitepathPattern(expression régulière correspondant aux chemins de la marketplace)
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
modelsur"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
Copilot pour CLI, utilisez la syntaxe{ "overridable": "auto" }pour personnaliser la configuration de la clé pour chaque équipe. Vous pouvez ensuite définir"model": "unmanaged"dans un fichier de paramètres d’équipe, en fournissant une spécialisation qui prévaut surVS Codepour les membres de l’équipe concernée.
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 GitHub application Copilot, toutes les options de ligne de commande permettant d’accorder toutes les autorisations (
--yolo,--allow-allet les options individuelles--allow-all-tools,--allow-all-pathset--allow-all-urls) sont désactivées au démarrage et ne peuvent pas accorder d’autorisations étendues. Les commandes slash/yoloet/allow-allsont également bloquées. - Dans managed-settings.json, le paramètre global d’approbation automatique (
chat.tools.global.autoApprove) est désactivé et ne peut pas être réactivé. - Dans le managed-settings.json, 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 syntaxe{ "overridable": "disable" }pour personnaliser la configuration de la clé pour chaque équipe. Vous pouvez ensuite définir"disableBypassPermissionsMode": "unmanaged"dans un fichier de paramètres d’équipe afin de fournir une spécialisation qui prévaut surmanaged-settings.jsonpour 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 surtruepour activer l’exportation de télémétrie, ou surfalsepour 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 surtruepour inclure le contenu des invites et des réponses dans la charge utile de télémétrie, ou surfalsepour l’exclure.lockCaptureContent: défini surtruepour empêcher les utilisateurs de modifier le paramètrecaptureContent.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êteAuthorizationpour 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 dansgithubDotComOrganizations, ou"enabled"pour l’autoriser sans restriction.githubDotComOrganizations: Un tableau d’identifiants de connexion de l’organisation. Obligatoire quandmodeest"requireSSO".
allowedMcpServers
Définit une liste d’autorisation des serveurs MCP autorisés à être exécutés. 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 d’autorisation effective est l’intersection de l’ensemble des sources. Un serveur doit être autorisé par chaque source à s’exécuter.
Chaque entrée doit contenir exactement une seule propriété de correspondance.
| Propriété | Comportement de mise en correspondance | Serveurs applicables |
|---|---|---|
serverName | Correspond 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. |
serverUrl | Correspond à une URL de serveur distant. Prend en charge les caractères génériques * pour les sous-domaines ou les préfixes de chemin, par exemple https:/ ou https:/. | 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. |
serverCommand | Correspond à 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’expansion de la 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é peut être redéfinie pour les équipes d’entreprise. Encapsulez les objets de correspondance sous overridable au niveau de l’entreprise, puis utilisez la syntaxe habituelle pour définir les listes d’autorisation et les listes de blocage 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,
:80pour HTTP ou:443https. - Décode les octets du composant hôte codés en pourcentage. Par exemple,
%65vildevientevil. - Supprime les fragments d’URL et les points finaux 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 serverName, serverUrl ou serverCommand décrites dans 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 d’activation forcée, une valeur gérée de
trueapplique ce paramètre.falseou une omission laisse la configuration utilisateur inchangée. - Pour les paramètres de fonctionnalité, une valeur gérée de
falseinterdit la fonctionnalité.trueou en cas d’omission, la configuration de l’utilisateur reste 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:truenécessite le bac à sable (sandbox) et empêche les utilisateurs de le désactiver.allowBypass:falseempêche le modèle de demander qu’une commande individuelle s’exécute en dehors du bac à sable.addCurrentWorkingDirectory:falseempêche Copilot pour CLI d’ajouter automatiquement le répertoire de travail actuel aux chemins de lecture/écriture de la sandbox.sandboxMcpServers:truenécessite que les serveurs MCP locaux démarrés par Copilot pour CLI s’exécutent dans le bac à sable. Les serveurs MCP distants ne s’exécutent pas dans le bac à sable local.sandboxLspServers:truenécessite que les serveurs de langage démarrés par Copilot pour CLI s’exécutent dans le bac à sable.gitAuth:falseempêche Copilot pour CLI d’injecter un jeton GitHub pour les opérations Git HTTPS authentifiées dans le bac à sable.ghAuth:falseempêche Copilot pour CLI d’injecter un jeton GitHub pour GitHub CLI dans le sandbox.allowDevToolAccess:falseempê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 paquets. 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’autorisations gérées sont comparées aux listes configurées par l’utilisateur sur la base d’une correspondance exacte de la chaîne de chemin, et non selon la couverture d’un 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: Un tableau de chemins d’accès que les processus en bac à sable peuvent lire, mais dans lesquels ils ne peuvent 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:falsebloque l’accès réseau sortant.allowLocalNetwork:falseempê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:falseempêche les processus sandboxés d’accéder au trousseau macOS.