인가 익스텐션

인가 익스텐션 (Authorization Extensions)

출처: MCP 공식 문서 — Authorization Extensions

ext-auth 저장소에는 핵심 MCP 명세 너머의 인가 기능을 더하는 공식 MCP 익스텐션들이 들어 있어요. 이런 익스텐션은 표준 OAuth 2.0 인가 코드 흐름이 맞지 않는 실제 시나리오를 다뤄요.

왜 인가 익스텐션인가

핵심 MCP 명세는 OAuth 2.0 위에 지어진 강력한 인가 프레임워크를 포함해요. 그 프레임워크는 흔한 경우를 잘 처리해요. 사용자가 대화형으로 MCP 클라이언트에 자기 대신 서버에 접근할 권한을 주는 경우죠.

하지만 모든 MCP 배포가 이 패턴에 맞지는 않아요.

  • 머신 간 통합에는 사람이 개입하지 않아요. 백그라운드 서비스, CI 파이프라인, 자동화 워크플로는 대화형 사용자 동의 흐름 없이 인증해야 해요.
  • 엔터프라이즈 환경에는 모든 애플리케이션에 정책을 적용하는 중앙 집중식 신원 공급자(IdP)가 종종 있어요. 직원들이 MCP 서버마다 개별적으로 인가하게 하는 건 마찰을 만들고 기존 보안 통제를 우회해요.

ext-auth 익스텐션이 이런 간극을 다뤄요.

사용 가능한 익스텐션

OAuth Client Credentials — OAuth 2.0 client credentials 흐름을 쓰는 머신 간 인증. 사용자 상호작용 불필요.

Enterprise-Managed Authorization — 엔터프라이즈 신원 공급자를 통한 중앙 집중식 접근 제어. 직원들이 조직의 IdP를 통해 MCP 서버에 접근해요.

올바른 익스텐션 고르기

시나리오 권장 익스텐션
MCP 서버에 접근하는 백그라운드 서비스나 데몬 OAuth Client Credentials
MCP 도구를 호출하는 CI/CD 파이프라인 OAuth Client Credentials
서버 간 API 통합 OAuth Client Credentials
직장에서 MCP 서버에 접근하는 엔터프라이즈 직원 Enterprise-Managed Authorization
조직 전체 MCP 접근 정책 적용 Enterprise-Managed Authorization
표준 대화형 사용자 인가 핵심 MCP 명세(익스텐션 불필요)

클라이언트 지원

인가 익스텐션 지원은 클라이언트마다 달라요. 전체 내역은 클라이언트 매트릭스에서 볼 수 있어요. 두 익스텐션 모두 MCP 클라이언트의 명시적 지원이 필요해요. 기본으로 활성화되지 않아요.

명세

두 익스텐션 모두 ext-auth 저장소에 명세돼 있어요. 표준 MCP 익스텐션 협상 메커니즘을 사용해요. 클라이언트는 각 요청의 _meta에 보내는 io.modelcontextprotocol/clientCapabilitiesextensions 필드에 지원을 선언하고, 서버는 server/discover가 반환하는 capabilities에서 자기 것을 광고해요.

더 알아보기 (Learn more)