MCP OAuth-Authentifizierung
Verbinde Bob Shell über OAuth 2.1 mit MCP-Servern, die benutzerdelegierten Zugriff erfordern. Bob Shell verwaltet den Authentifizierungs- und Token-Aktualisierungsprozess, sodass du Token nicht manuell verwalten musst.
Für die allgemeine MCP-Konfiguration, siehe MCP-Server konfigurieren.
Übersicht
Du kannst Bob Shell mit Model Context Protocol (MCP)-Servern verbinden, die in deinem Namen agieren, wie z. B. beim Zugriff auf deine Repositories, Cloud-Ressourcen oder Unternehmensdienste. Diese Server verwenden OAuth 2.1, damit du dich anmelden und den Zugriff genehmigen kannst.
Bob Shell verwaltet den Authentifizierungsablauf direkt. Wenn du einen Server konfigurierst, der OAuth erfordert, öffnet Bob Shell ein Autorisierungsfenster in deinem Standardbrowser. Nachdem du dich angemeldet und die Berechtigungen genehmigt hast, speichert und aktualisiert Bob Shell deine Zugriffstoken, ohne dass du Anmeldeinformationen manuell verwalten musst.
Verwende OAuth, wenn:
- Du auf Ressourcen zugreifen musst, die mit deinem persönlichen oder Unternehmens-Benutzerkonto verknüpft sind
- Der Server kurzlebige Token verwendet, die eine automatische Token-Aktualisierung erfordern
- Du statische Anmeldeinformationen und Geheimnisse aus deinen Konfigurationsdateien heraushalten möchtest
Wenn du bereits über ein statisches API-Token oder ein persönliches Zugriffstoken verfügst, das nicht abläuft, kannst du stattdessen ein Bearer-Token in headers verwenden.
Wie der Authentifizierungsablauf funktioniert
- Du fügst die URL des Remote-MCP-Servers zu deiner Konfigurationsdatei hinzu, ohne
headers- oderenv-Anmeldeinformationen. - Wenn sich Bob Shell mit dem Server verbindet, erkennt Bob Shell die OAuth-Anforderungen.
- Bob Shell öffnet ein Browser-Anmeldefenster, in dem du die angeforderten Berechtigungen überprüfst und den Zugriff genehmigst.
- Bob Shell empfängt die Autorisierungstoken und speichert sie sicher über deine Sitzungen hinweg.
- Bob Shell aktualisiert Token automatisch vor ihrem Ablauf, sodass du ohne Unterbrechung arbeiten kannst.
Bob Shell Autorisierungsserver MCP-Server
| | |
|-- Verbindung zum Server ------>| |
|<-- OAuth-Metadaten (401) ------| |
|-- Auth-Aufforderung öffnen --->| |
| (Nutzer meldet sich an | |
| und erteilt Zustimmung) | |
|<-- Autorisierungscode ---------| |
|-- Tokens austauschen --------->| |
|<-- Access + Refresh Tokens ----| |
|-- Authentifizierte Anfragen -----------------------> |
| (automatische Aktualisierung bei Bedarf) |Einen OAuth-fähigen Server konfigurieren
Du kannst deine MCP-Server entweder in deiner globalen Konfiguration (~/.bob/mcp_settings.json) oder in deiner Projektkonfiguration (.bob/mcp.json) konfigurieren.
Minimale Konfiguration (automatische Erkennung)
Wenn dein MCP-Server eine automatische OAuth-Metadaten-Erkennung bietet, musst du nur die url angeben:
{
"mcpServers": {
"my-oauth-server": {
"url": "https://mcp.example.com/mcp"
}
}
}Bob Shell erkennt die OAuth-Anforderungen beim Herstellen der Verbindung und führt dich durch den Anmeldeprozess im Browser.
Benutzerdefinierte OAuth-Parameter
Wenn dein Identitätsanbieter eine vorregistrierte Client-ID, benutzerdefinierte Scopes oder ein Client-Secret erfordert, konfiguriere das oauth-Objekt:
{
"mcpServers": {
"my-oauth-server": {
"url": "https://mcp.example.com/mcp",
"oauth": {
"enabled": true,
"clientId": "your-client-id-from-idp",
"clientSecret": "your-client-secret-if-required",
"scope": "mcp:connect read:data"
}
}
}
}Konfigurationseigenschaften
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
url | string | Remote-MCP-Endpunkt-URL (erforderlich). |
oauth.enabled | boolean | Auf false setzen, um OAuth zu deaktivieren, oder auf true, um OAuth zu erfordern. Standardmäßig aktiviert, wenn kein Authorization-Header vorhanden ist. |
oauth.clientId | string | Vorregistrierte OAuth-Client-ID, die von deinem Identitätsanbieter ausgestellt wurde. |
oauth.clientSecret | string | OAuth-Client-Secret, falls dein Autorisierungsserver eines für vertrauliche Clients erfordert. |
oauth.scope | string | Durch Leerzeichen getrennte Liste der OAuth-Scopes, die du anfordern möchtest. |
Das Hinzufügen eines statischen Authorization-Headers zu einer MCP-Serverkonfiguration deaktiviert OAuth. Wenn ein Authorization-Header vorhanden ist, leitet Bob Shell den OAuth-Ablauf nicht ein. Wenn OAuth aktiv ist, entfernt Bob Shell statische Authorization-Header vor dem Senden von Anfragen. Verwende nur eine Authentifizierungsmethode pro Server.
Registriere Bob bei deinem Identitätsanbieter
Wenn dein Identitätsanbieter (IdP) erfordert, dass du Bob als Client-Anwendung registrierst, bevor du eine Verbindung herstellst, verwende die folgenden application settings:
| Einstellung | Wert |
|---|---|
| Anwendungs- oder Client-Typ | Öffentlich, Native oder Loopback (Authorization Code mit PKCE) |
| Redirect-URI | http://127.0.0.1:33418/callback |
| Zusätzliche Redirect-URIs | http://127.0.0.1:33419/callback bis http://127.0.0.1:33427/callback (empfohlen, wenn Port 33418 belegt ist) |
| Grant-Typen | Authorization Code (authorization_code) und Refresh Token (refresh_token) |
| Scopes | In der Dokumentation deines MCP-Servers angegebene Scopes |
Kopiere die ausgestellte Client-ID in oauth.clientId in deiner Konfigurationsdatei.
Authentifizieren, wenn aufgefordert
Wenn du dich zum ersten Mal mit einem OAuth-fähigen Server verbindest:
- Ein Browserfenster öffnet sich mit der Autorisierungsaufforderung.
- Überprüfe die Berechtigungen, die der Server anfordert.
- Melde dich bei deinem Konto an und genehmige den Zugriff.
- Bob Shell speichert deine Anmeldeinformationen und verbindet sich automatisch mit den Server-Tools.
Fehlerbehebung
Die Authentifizierungsaufforderung öffnet sich nicht
- Verifiziere, dass du den Server in deiner Konfiguration nicht als deaktiviert markiert hast.
- Überprüfe, dass deine Konfigurationsdatei keinen statischen
Authorization-Header inheadersenthält. - Starte Bob Shell neu, um die Serververbindung neu zu initiieren.
- Überprüfe, dass dein Browser oder deine Firewall lokale Loopback-Verbindungen auf
127.0.0.1nicht blockiert.
Der Identitätsanbieter gibt einen Redirect-URI-Fehler (mismatch) zurück
- Verifiziere, dass die Client-Registrierung deines Identitätsanbieters
http://127.0.0.1:33418/callbackenthält. - Wenn Port 33418 belegt ist, registriere zusätzliche Ports von
33419bis33427.
Die Authentifizierung ist erfolgreich, aber der Server kann keine Verbindung herstellen
- Verifiziere, dass die Server-URL korrekt und von deinem Netzwerk aus erreichbar ist.
- Überprüfe, dass du alle erforderlichen Scopes während des Anmeldeschritts genehmigt hast.
- Überprüfe die Serverprotokolle oder die Dokumentation auf erforderliche Benutzerrollen oder Berechtigungen.
Token laufen häufig ab und du musst dich erneut authentifizieren
- Verifiziere, dass dein Autorisierungsserver Refresh-Token ausstellt.
- Überprüfe, dass deine Systemzeit synchronisiert ist, um einen vorzeitigen Token-Ablauf zu verhindern.
Du möchtest dich abmelden oder Konten wechseln
Entferne oder benenne den Servereintrag in deiner Konfigurationsdatei um und füge ihn erneut hinzu. Bob Shell behandelt ihn als neuen Server und fordert dich bei der nächsten Verbindung zur Anmeldung auf.