RSS Frühling
Folgen
Sicherung von MCP-Servern mit Spring AI
Das Model Context Protocol (MCP) ist ein sich schnell entwickelnder Standard in der KI-Welt. Spring AI hat ein neues Projekt, mcp-security, gestartet, um die Sicherheitsanforderungen von Spring-Benutzern zu erfüllen. Dieses Projekt bietet Unterstützung für die Absicherung von MCP-Servern mit OAuth 2 und API-Schlüsseln. Die neueste Version der MCP-Spezifikation gewinnt zunehmend Unterstützung im Ökosystem.
Über HTTP exponierte MCP-Server müssen gemäß der MCP-Spezifikation mit OAuth 2-Zugriffstoken gesichert werden. Aufrufe an einen MCP-Server erfordern einen Authorization-Header mit einem Bearer-Token. Der MCP-Server muss die Autorisierungsserver, denen er für den Token-Erwerb vertraut, explizit bewerben. Spring AI lässt sich nahtlos in OAuth 2-Ressourcenserver integrieren, sodass Anwendungen bestehende Autorisierungsserver wie Okta oder GitHub nutzen können.
Um einen MCP-Server mit OAuth 2 abzusichern, müssen Benutzer spezifische Abhängigkeiten zu ihren Spring AI-Anwendungen hinzufügen. Diese Abhängigkeiten ermöglichen die Funktionalität von OAuth 2-Ressourcenservern und MCP-spezifische Sicherheitseinstellungen. Anwendungseigenschaften werden dann verwendet, um den Namen des MCP-Servers, das Protokoll und die URL des Autorisierungsservers zu konfigurieren. Ein Beispielwerkzeug zeigt, wie Benutzerinformationen aus dem authentifizierten JWT-Token abgerufen werden.
Eine Beispiel-Sicherheitskonfigurationsklasse, McpServerSecurityConfiguration, demonstriert, wie die Authentifizierung für alle Anfragen erzwungen und OAuth 2 für den MCP-Server konfiguriert wird. Diese Einrichtung ermöglicht es MCP-Clients, Autorisierungsserver dynamisch zu erkennen und zu nutzen. Spring Authorization Server kann auch so erstellt werden, dass er MCP-kompatibel ist und OAuth 2 Dynamic Client Registration sowie Resource Indicators unterstützt.
Obwohl OAuth 2 der vorgeschriebene Sicherheitsmechanismus ist, unterstützt die MCP-Spezifikation auch die Authentifizierung auf Basis von API-Schlüsseln für Umgebungen, in denen keine OAuth 2-Infrastruktur vorhanden ist. Das mcp-security-Projekt erleichtert die Sicherheit von API-Schlüsseln, indem es benutzerdefinierte Header für die Authentifizierung zulässt. Dies beinhaltet das Hinzufügen spezifischer Abhängigkeiten für Spring Security und die Konfiguration eines API-Schlüssel-Repositorys. Der MCP-Server validiert dann den bereitgestellten API-Schlüssel, der typischerweise als X-API-key-Header gesendet wird.
Das mcp-security-Projekt zielt darauf ab, die MCP-Sicherheit zu verbessern und bietet Dokumentation und Beispiele für die serverseitige und clientseitige Sicherheit. Beiträge und Feedback werden ermutigt, um die Sicherheitsfunktionen des Protokolls weiter zu verbessern. Das Projekt bietet auch Unterstützung für die clientseitige MCP-Sicherheit innerhalb von Spring AI und Spring Security.