Spring AI를 이용한 MCP 서버 보안 노트
RSS 봄

Spring AI를 이용한 MCP 서버 보안

모델 컨텍스트 프로토콜(MCP) 보안 강화: Spring AI의 mcp-security 프로젝트 AI 업계에서 빠르게 발전하는 표준인 모델 컨텍스트 프로토콜(MCP)의 보안을 강화하기 위해 Spring AI가 새로운 프로젝트인 mcp-security를 출시했습니다. 이 프로젝트는 Spring 사용자들의 보안 요구사항을 충족시키기 위해 OAuth 2 및 API 키를 사용하여 MCP 서버를 보호하는 기능을 제공합니다. 최신 MCP 사양은 생태계 전반에서 더 넓은 지원을 받고 있습니다. MCP 서버 보안의 핵심: OAuth 2 MCP 사양에 따르면 HTTP를 통해 노출되는 MCP 서버는 OAuth 2 액세스 토큰을 사용하여 보안이 유지되어야 합니다. MCP 서버에 대한 호출은 Bearer 토큰이 포함된 Authorization 헤더를 필요로 합니다. MCP 서버는 토큰 획득을 위해 신뢰하는 인증 서버를 명시적으로 광고해야 합니다. Spring AI는 Okta 또는 GitHub와 같은 기존 인증 서버를 활용할 수 있도록 OAuth 2 리소스 서버와 원활하게 통합됩니다. OAuth 2를 사용한 MCP 서버 보안 설정 OAuth 2를 사용하여 MCP 서버를 보호하려면 Spring AI 애플리케이션에 특정 종속성을 추가해야 합니다. 이러한 종속성은 OAuth 2 리소스 서버 기능 및 MCP별 보안 구성을 활성화합니다. 그런 다음 애플리케이션 속성을 사용하여 MCP 서버 이름, 프로토콜 및 인증 서버 URL을 구성합니다. 샘플 도구는 인증된 JWT 토큰에서 사용자 정보를 검색하는 방법을 보여줍니다. `McpServerSecurityConfiguration`과 같은 예제 보안 구성 클래스는 모든 요청에 대한 인증을 강제하고 MCP 서버에 대한 OAuth 2를 구성하는 방법을 보여줍니다. 이 설정을 통해 MCP 클라이언트는 인증 서버를 동적으로 검색하고 활용할 수 있습니다. Spring Authorization Server는 OAuth 2 동적 클라이언트 등록 및 리소스 표시기를 지원하도록 MCP와 호환되도록 구축될 수도 있습니다. API 키 기반 인증 지원 OAuth 2가 필수 보안 메커니즘이지만, MCP 사양은 OAuth 2 인프라가 없는 환경을 위해 API 키 기반 인증도 지원합니다. mcp-security 프로젝트는 사용자 지정 헤더를 사용하여 인증을 허용함으로써 API 키 보안을 촉진합니다. 여기에는 Spring Security에 대한 특정 종속성을 추가하고 API 키 저장소를 구성하는 작업이 포함됩니다. 그런 다음 MCP 서버는 일반적으로 X-API-key 헤더로 전송되는 제공된 API 키를 검증합니다. 향후 발전 및 기여 mcp-security 프로젝트는 MCP 보안을 개선하는 것을 목표로 하며 서버 측 및 클라이언트 측 보안 모두에 대한 문서와 샘플을 제공합니다. 프로토콜의 보안 기능을 더욱 향상시키기 위해 기여와 피드백을 장려합니다. 이 프로젝트는 Spring AI 및 Spring Security 내에서 클라이언트 측 MCP 보안에 대한 지원도 제공합니다.
CdXz5zHNQW_nl1kdOfOBY.png