Authentification OAuth pour MCP
Bob Shell prend en charge OAuth 2.1 pour les serveurs MCP nécessitant un accès délégué par l'utilisateur. Bob gère le flux d'authentification automatiquement, y compris le renouvellement des tokens, sans que vous ayez à les gérer manuellement.
Pour la configuration MCP générale, consultez Configurer les serveurs MCP.
Vue d'ensemble
Certains serveurs MCP doivent agir en votre nom en tant qu'utilisateur, par exemple pour lire vos dépôts GitHub ou accéder à vos fichiers Google Drive. Ces serveurs utilisent OAuth 2.1 pour demander votre consentement avant d'accéder à des données.
Bob gère l'intégralité du flux OAuth automatiquement. Lorsque vous vous connectez à un serveur qui nécessite OAuth, Bob ouvre le flux d'autorisation dans votre navigateur. Après votre autorisation, Bob gère le stockage et le renouvellement des tokens sans autre intervention manuelle.
Cette approche est différente des méthodes d'authentification statiques comme un Bearer token dans headers ou une clé API dans env, qui conviennent aux comptes de service ou aux tokens qui n'expirent pas. Utilisez OAuth lorsque :
- Le serveur a besoin d'accéder à des ressources appartenant à votre compte utilisateur
- Le serveur d'autorisation émet des tokens de courte durée qui doivent être renouvelés
- Vous souhaitez éviter de stocker des secrets de longue durée dans vos fichiers de configuration MCP
Fonctionnement du flux d'authentification
- Vous ajoutez un serveur MCP compatible OAuth à votre fichier de configuration (aucune accréditation
headersouenvrequise) - Lorsque Bob se connecte au serveur pour la première fois, il détecte les métadonnées d'autorisation OAuth du serveur
- Bob ouvre une invite d'authentification dans le navigateur vous demandant de vous connecter et d'accorder votre consentement
- Après votre autorisation, Bob stocke les tokens d'accès et de renouvellement de façon sécurisée entre les sessions
- Bob renouvelle automatiquement les tokens avant leur expiration. Vous n'êtes pas de nouveau invité sauf en cas d'échec du renouvellement.
Bob Shell Serveur d'autorisation Serveur MCP
| | |
|-- connexion au serveur ------->| |
|<-- métadonnées OAuth (401) ----| |
|-- ouverture de l'invite ------>| |
| (l'utilisateur se connecte) | |
|<-- code d'autorisation --------| |
|-- échange pour les tokens ---->| |
|<-- tokens d'accès + renouvellement ----| |
|-- requêtes authentifiées ---------------------------------> |
| (renouvellement automatique si nécessaire) |Configurer un serveur compatible OAuth
Les serveurs MCP compatibles OAuth annoncent automatiquement leurs exigences d'autorisation. Dans la plupart des cas, seule l'URL du serveur est nécessaire — les champs OAuth sont optionnels. Bob prend également en charge les propriétés OAuth optionnelles suivantes :
oauth: Définissez àfalsepour désactiver OAuth sur un serveur, ou àtruepour l'activer explicitementclientId: Identifiant client OAuth, si requis par le serveur d'autorisationclientSecret: Secret client OAuth, si requis par le serveur d'autorisationscope: Liste de portées OAuth séparées par des espaces à demander
Exemple de configuration dans ~/.bob/mcp_settings.json (global) ou .bob/mcp.json (projet) :
{
"mcpServers": {
"mon-serveur-oauth": {
"url": "https://votre-url-serveur.com/mcp"
}
}
}Bob détecte l'exigence OAuth lors de la connexion et initie le flux. Aucune accréditation headers ou env n'est nécessaire.
Ajouter un en-tête Authorization statique à un serveur compatible OAuth désactive entièrement l'OAuth automatique. Bob n'entreprend pas le flux OAuth. À l'inverse, lorsque OAuth est actif, Bob supprime tout en-tête Authorization statique avant d'envoyer les requêtes. N'utilisez qu'une seule méthode.
S'authentifier lorsque demandé
Lorsque Bob se connecte à un serveur compatible OAuth pour la première fois :
- Une fenêtre de navigateur s'ouvre avec l'invite d'autorisation
- Examinez les permissions que le serveur demande
- Connectez-vous avec le compte requis et accordez votre consentement
- Bob stocke les tokens et finalise la connexion automatiquement
L'invite s'ouvre dans votre navigateur par défaut. Après avoir complété l'autorisation, Bob Shell reprend la connexion automatiquement.
Résolution de problèmes
L'invite d'authentification n'apparaît pas
- Vérifiez que le serveur n'est pas marqué comme désactivé dans votre configuration
- Redémarrez Bob Shell pour relancer la connexion au serveur
- Vérifiez que votre navigateur ne bloque pas la page d'autorisation
L'authentification réussit mais le serveur ne parvient pas à se connecter
- Vérifiez que l'URL du serveur est correcte et accessible
- Vérifiez que vous avez accordé toutes les permissions requises lors de l'étape de consentement
- Consultez la documentation du serveur pour toute exigence de configuration supplémentaire
Les tokens expirent fréquemment et une ré-authentification est nécessaire
- Vérifiez que le serveur d'autorisation prend en charge les refresh tokens. Certains serveurs émettent uniquement des tokens d'accès avec de courtes durées de vie.
- Vérifiez que l'horloge de votre système est précise, car un décalage d'horloge peut entraîner une expiration prématurée des tokens
Vous souhaitez vous déconnecter ou changer de compte
Supprimez ou renommez l'entrée du serveur dans votre fichier de configuration et rajoutez-la. Cela oblige Bob à la traiter comme un nouveau serveur et déclenche une nouvelle invite d'authentification à la prochaine connexion.