Printemps RSS
Suivre
Sécurisation des serveurs MCP avec Spring AI
Le Model Context Protocol (MCP) est une norme en évolution rapide dans le monde de l'IA. Spring AI a lancé un nouveau projet, mcp-security, pour répondre aux besoins de sécurité des utilisateurs de Spring. Ce projet offre un support pour sécuriser les serveurs MCP avec OAuth 2 et des clés API. La dernière version de la spécification MCP gagne un support plus large de l'écosystème.
Les serveurs MCP exposés via HTTP doivent être sécurisés à l'aide de jetons d'accès OAuth 2 conformément à la spécification MCP. Les appels à un serveur MCP nécessitent un en-tête Authorization avec un jeton Bearer. Le serveur MCP doit explicitement annoncer les serveurs d'autorisation dont il fait confiance pour l'acquisition de jetons. Spring AI s'intègre de manière transparente avec les serveurs de ressources OAuth 2, permettant aux applications de tirer parti des serveurs d'autorisation existants tels qu'Okta ou GitHub.
Pour sécuriser un serveur MCP avec OAuth 2, les utilisateurs doivent ajouter des dépendances spécifiques à leurs applications Spring AI. Ces dépendances activent la fonctionnalité de serveur de ressources OAuth 2 et les configurations de sécurité spécifiques à MCP. Les propriétés de l'application sont ensuite utilisées pour configurer le nom du serveur MCP, le protocole et l'URL du serveur d'autorisation. Un outil d'exemple démontre comment récupérer les informations utilisateur à partir du jeton JWT authentifié.
Une classe de configuration de sécurité d'exemple, McpServerSecurityConfiguration, démontre comment appliquer l'authentification pour toutes les requêtes et configurer OAuth 2 pour le serveur MCP. Cette configuration permet aux clients MCP de découvrir et d'utiliser dynamiquement les serveurs d'autorisation. Spring Authorization Server peut également être construit pour être compatible MCP, prenant en charge l'enregistrement dynamique de clients OAuth 2 et les indicateurs de ressources.
Bien qu'OAuth 2 soit le mécanisme de sécurité obligatoire, la spécification MCP prend également en charge l'authentification basée sur des clés API pour les environnements dépourvus d'infrastructure OAuth 2. Le projet mcp-security facilite la sécurité des clés API en permettant des en-têtes personnalisés pour l'authentification. Cela implique l'ajout de dépendances spécifiques pour Spring Security et la configuration d'un dépôt de clés API. Le serveur MCP valide ensuite la clé API fournie, qui est généralement envoyée sous forme d'en-tête X-API-key.
Le projet mcp-security vise à améliorer la sécurité MCP et propose de la documentation et des exemples pour la sécurité côté serveur et côté client. Les contributions et les commentaires sont encouragés pour améliorer davantage les fonctionnalités de sécurité du protocole. Le projet fournit également un support pour la sécurité MCP côté client au sein de Spring AI et Spring Security.