RSS Весна
Подписаться
Защита серверов MCP с помощью Spring AI
Протокол контекста модели (MCP) — это быстро развивающийся стандарт в мире ИИ. Spring AI запустил новый проект, mcp-security, для удовлетворения потребностей пользователей Spring в области безопасности. Этот проект обеспечивает поддержку защиты серверов MCP с помощью OAuth 2 и ключей API. Последняя версия спецификации MCP получает более широкую поддержку экосистемы.
Серверы MCP, доступные через HTTP, должны быть защищены с использованием токенов доступа OAuth 2 в соответствии со спецификацией MCP. Вызовы к серверу MCP требуют заголовка Authorization с токеном Bearer. Сервер MCP должен явно рекламировать серверы авторизации, которым он доверяет для получения токенов. Spring AI бесшовно интегрируется с ресурсными серверами OAuth 2, позволяя приложениям использовать существующие серверы авторизации, такие как Okta или GitHub.
Для защиты сервера MCP с помощью OAuth 2 пользователям необходимо добавить определенные зависимости в свои приложения Spring AI. Эти зависимости обеспечивают функциональность ресурсного сервера OAuth 2 и специфичные для MCP настройки безопасности. Затем свойства приложения используются для настройки имени сервера MCP, протокола и URL-адреса сервера авторизации. Пример инструмента демонстрирует, как получить информацию о пользователе из аутентифицированного JWT-токена.
Пример класса конфигурации безопасности, McpServerSecurityConfiguration, демонстрирует, как обеспечить аутентификацию для всех запросов и настроить OAuth 2 для сервера MCP. Эта настройка позволяет клиентам MCP динамически обнаруживать и использовать серверы авторизации. Сервер авторизации Spring также может быть создан для совместимости с MCP, поддерживая динамическую регистрацию клиентов OAuth 2 и индикаторы ресурсов.
Хотя OAuth 2 является обязательным механизмом безопасности, спецификация MCP также поддерживает аутентификацию на основе ключей API для сред, не имеющих инфраструктуры OAuth 2. Проект mcp-security облегчает безопасность ключей API, позволяя использовать пользовательские заголовки для аутентификации. Это включает добавление специфичных зависимостей для Spring Security и настройку репозитория ключей API. Затем сервер MCP проверяет предоставленный ключ API, который обычно отправляется в заголовке X-API-key.
Проект mcp-security направлен на повышение безопасности MCP и предлагает документацию и примеры как для серверной, так и для клиентской безопасности. Вклад и отзывы приветствуются для дальнейшего улучшения функций безопасности протокола. Проект также обеспечивает поддержку клиентской безопасности MCP в рамках Spring AI и Spring Security.