Sicherheit 2026-03-26

MCP-Verbindungen mit OAuth absichern: Vollständiger Leitfaden

MCP Trail Team

MCP Trail Team

Sicherheitsteam

MCP-Verbindungen mit OAuth absichern: Vollständiger Leitfaden

MCP-Verbindungen mit OAuth absichern: Vollständiger Leitfaden

OAuth bietet sichere, standardisierte Autorisierung für MCP-Verbindungen. Dieser Leitfaden behandelt Implementierungsmuster und Best Practices.

Warum OAuth für MCP?

  • Standardisierte Sicherheit: Branchenbewährtes Protokoll
  • Token-basierter Zugriff: Keine Anmeldedaten in Anfragen
  • Fein granulare Berechtigungen: Scope-basierte Zugriffskontrolle
  • Benutzer-Delegation: Begrenzten Zugriff ohne Freigabe von Anmeldedaten ermöglichen

OAuth-Flow für MCP

1. Autorisierungsanfrage

const authUrl = `https://auth.example.com/authorize?
  client_id=${clientId}
  &redirect_uri=${redirectUri}
  &response_type=code
  &scope=mcp:read mcp:write
  &state=${securityToken}`;

2. Token-Austausch

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. MCP-Anfrage mit Token

const mcpRequest = {
  tool: 'my_tool',
  arguments: args,
  authorization: `Bearer ${accessToken}`
};

Implementierungsmuster

Server-zu-Server (Client Credentials)

Für Maschine-zu-Maschine-Kommunikation:

const serverAuth = {
  grant_type: 'client_credentials',
  client_id: 'mcp-server',
  client_secret: 'server-secret',
  scope: 'mcp:github mcp:jira'
};

Benutzer-Delegation (Authorization Code)

Für benutzerinitiierte Aktionen:

const userAuth = {
  grant_type: 'authorization_code',
  code: authCode,
  redirect_uri: callbackUrl,
  client_id: clientId
};

Token-Management

Refresh-Tokens

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();
};

Token-Widerruf

const revokeToken = async (token) => {
  await fetch(revokeEndpoint, {
    method: 'POST',
    body: `token=${token}`
  });
};

Sicherheits-Best Practices

  1. HTTPS verwenden: Immer Datenverkehr verschlüsseln
  2. Kurzlebige Tokens: Token-Lebensdauer minimieren
  3. Sichere Speicherung: Tokens verschlüsselt speichern
  4. Regelmäßige Rotation: Tokens häufig erneuern
  5. Scope-Beschränkung: Minimal erforderliche Scopes anfordern

Conclusion

OAuth bietet robuste Sicherheit für MCP-Infrastruktur. Implementieren Sie proper Token-Management und folgen Sie Sicherheits-Best Practices, um Ihre KI-Systeme zu schützen.

Verwandte Artikel

Diesen Artikel teilen