인가 익스텐션
인가 익스텐션 (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/clientCapabilities의 extensions 필드에 지원을 선언하고, 서버는 server/discover가 반환하는 capabilities에서 자기 것을 광고해요.
더 알아보기 (Learn more)
- MCP 공식 문서 — Authorization Extensions
- MCP 공식 문서 — OAuth Client Credentials
- MCP 공식 문서 — Enterprise-Managed Authorization