Sécurité • 2026-03-26
Sécuriser les connexions MCP avec OAuth : Guide complet
MCP Trail Team
Équipe de sécurité
Sécuriser les connexions MCP avec OAuth : Guide complet
OAuth fournit une autorisation sécurisée et standardisée pour les connexions MCP. Ce guide couvre les modèles d’implémentation et les meilleures pratiques.
Pourquoi OAuth pour MCP ?
- Sécurité standardisée : Protocole éprouvé par l’industrie
- Accès basé sur les tokens : Pas d’identifiants dans les requêtes
- Permissions granulaires : Contrôle d’accès basé sur les scopes
- Délégation utilisateur : Permettre un accès limité sans partager les identifiants
Flux OAuth pour MCP
1. Requête d’autorisation
const authUrl = `https://auth.example.com/authorize?
client_id=${clientId}
&redirect_uri=${redirectUri}
&response_type=code
&scope=mcp:read mcp:write
&state=${securityToken}`;
2. Échange de token
const tokenResponse = await fetch('https://auth.example.com/token', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: `grant_type=authorization_code
&code=${authCode}
&client_id=${clientId}
&client_secret=${clientSecret}`
});
const { access_token, refresh_token } = await tokenResponse.json();
3. Requête MCP avec token
const mcpRequest = {
tool: 'my_tool',
arguments: args,
authorization: `Bearer ${accessToken}`
};
Modèles d’implémentation
Serveur-à-serveur (Client Credentials)
Pour la communication machine-à-machine :
const serverAuth = {
grant_type: 'client_credentials',
client_id: 'mcp-server',
client_secret: 'server-secret',
scope: 'mcp:github mcp:jira'
};
Délégation utilisateur (Authorization Code)
Pour les actions initiées par l’utilisateur :
const userAuth = {
grant_type: 'authorization_code',
code: authCode,
redirect_uri: callbackUrl,
client_id: clientId
};
Gestion des tokens
Tokens de rafraîchissement
const refreshAccessToken = async (refreshToken) => {
const response = await fetch(tokenEndpoint, {
method: 'POST',
body: `grant_type=refresh_token
&refresh_token=${refreshToken}
&client_id=${clientId}`
});
return response.json();
};
Révocation de token
const revokeToken = async (token) => {
await fetch(revokeEndpoint, {
method: 'POST',
body: `token=${token}`
});
};
Meilleures pratiques de sécurité
- Utiliser HTTPS : Toujours chiffrer le trafic
- Tokens de courte durée : Minimiser la durée de vie des tokens
- Stockage sécurisé : Stocker les tokens chiffrés
- Rotation régulière : Rafraîchir les tokens fréquemment
- Limitation des scopes : Demander les scopes minimums requis
Conclusion
OAuth fournit une sécurité robuste pour l’infrastructure MCP. Implémentez une gestion appropriée des tokens et suivez les meilleures pratiques de sécurité pour protéger vos systèmes IA.
Articles liés
- Meilleures pratiques de sécurité MCP - Guide de sécurité complet
- Comment configurer GitHub MCP - Exemple d’implémentation OAuth
- Comment configurer Jira MCP - Un autre exemple OAuth
- Top 10 serveurs MCP en 2026 - Découvrir les intégrations MCP
- MCP à grande échelle : Leçons de production - Sécurité à l’échelle