엔터프라이즈 관리 인가

엔터프라이즈 관리 인가 (Enterprise-Managed Authorization)

출처: MCP 공식 문서 — Enterprise-Managed Authorization

Enterprise-Managed Authorization 익스텐션(io.modelcontextprotocol/enterprise-managed-authorization)은 조직이 기존 신원 공급자(IdP)를 통해 MCP 서버 접근을 중앙에서 제어하게 해줘요. 각 직원이 각 MCP 서버를 개별적으로 인가하는 대신, 조직의 IT·보안 팀이 접근 정책을 한 곳에서 관리해요.

무엇인가

표준 MCP 배포에서는 각 사용자가 MCP 클라이언트에 각 MCP 서버 접근을 독립적으로 인가해요. 소비자 앱에서는 이 사용자 주도 모델이 이상적이에요. 개인이 자기 데이터에 어떤 게 접근하는지 통제할 수 있으니까요.

엔터프라이즈 환경에서는 이 모델이 마찰과 보안 간극을 만들어요.

  • 직원들이 조직이 쓰는 모든 MCP 서버의 인가 상세를 이해할 필요가 없어야 해요
  • 각 사용자가 독립적으로 인가하면 보안 팀이 일관된 접근 정책을 적용할 수 없어요
  • 신입 직원 온보딩은 수십 개 서비스를 수동으로 인가하게 해요
  • 퇴사 처리는 모든 서비스에서 개별적으로 접근을 취소해야 해요

Enterprise-Managed Authorization은 조직의 IdP를 권위 있는 결정자로 도입해 이 문제를 풀어요. IdP(Okta, Azure AD, 또는 기업 SSO 시스템 등)는 직원이 어떤 MCP 서버에, 어떤 조건으로 접근할 수 있는지 통제해요. 직원은 이메일, Slack, 기타 업무 도구에 쓰는 바로 그 자격 증명인 회사 신원으로 인증하고, IdP가 조직 정책에 따라 MCP 서버 접근을 허용하거나 거부해요.

언제 쓸까

다음 때 Enterprise-Managed Authorization을 쓰세요.

  • 기업 환경에 MCP 배포 — IT가 모든 업무 애플리케이션 접근을 관리할 때
  • 조직 접근 정책 적용 — 승인된 직원만 특정 MCP 서버에 접근하게 해야 할 때
  • 접근 제어 중앙화 — 단일 관리 콘솔에서 MCP 서버 접근을 추가·취소하고 싶을 때
  • 규정 준수 요구 충족 — 모든 MCP 서버 접근에 감사 가능한 인가 기록이 필요할 때
  • 직원 경험 단순화 — 직원들이 서비스별 인가 흐름 없이 기존 기업 SSO 자격 증명으로 MCP 도구에 접근해야 할 때

어떻게 동작하는가

익스텐션은 엔터프라이즈 IdP가 MCP 클라이언트와 MCP 서버 사이의 중개자로 작용하는 위임 인가 흐름을 세워요. MCP 클라이언트는 엔터프라이즈 IdP에 Identity Assertion JWT Authorization Grant, 줄여서 ID-JAG라는 특수한 토큰을 요청해요. 그런 다음 MCP 클라이언트는 MCP 서버의 Authorization Server에 그 ID-JAG를 접근 토큰으로 교환해요.

sequenceDiagram
    participant UA as Browser
    participant C as MCP Client
    participant IdP as Enterprise IdP
    participant MAS as MCP Authorization Server
    participant MRS as MCP Resource Server

    C-->>UA: Redirect to IdP
    UA->>IdP: Redirect to IdP
    Note over IdP: User Logs In
    IdP-->>UA: IdP Authorization Code
    UA->>C: IdP Authorization Code
    C->>IdP: Token Request with IdP Authorization Code
    IdP-->>C: ID Token

    note over C: User is logged<br/>in to MCP Client.<br/>Client stores ID Token.

    C->>IdP: Exchange ID Token for ID-JAG
    note over IdP: Evaluate Policy
    IdP-->>C: Responds with ID-JAG
    C->>MAS: Token Request with ID-JAG
    note over MAS: Validate ID-JAG
    MAS-->>C: MCP Access Token

    loop
    C->>MRS: Call MCP API with Access Token
    MRS-->>C: MCP Response with Data
    end

흐름의 핵심 측면:

  1. 중앙 정책: 엔터프라이즈 IdP가 승인된 MCP 서버 레지스트리와 각 서버의 접근 정책을 유지해요. 관리자는 기존 신원 관리 도구에서 이를 구성해요.

  2. 단일 로그인: 직원은 기업 자격 증명으로 한 번 인증해요. IdP는 추가 서버별 인가 프롬프트 없이 승인된 MCP 서버에 접근을 부여하는 토큰을 발급해요.

  3. 정책 적용: IdP는 토큰 발급 전에 접근 정책(그룹 멤버십, 역할 배정, 조건부 접근 규칙)을 평가해요. 인가되지 않은 직원은 적절한 오류를 받아요. MCP 클라이언트는 승인되지 않은 서버에 대한 토큰을 절대 받지 못해요.

  4. 중앙 취소: 직원의 MCP 서버 접근 취소가 IdP 수준에서 일어나 모든 MCP 클라이언트에 즉시 적용돼요. 클라이언트별·서버별 취소가 필요 없어요.

구현 가이드

MCP 클라이언트용

Enterprise-Managed Authorization을 지원하려면 클라이언트는:

  1. 지원 선언 — 요청별 capabilities에서:
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "...",
  "params": {
    // Other fields...
    "_meta": {
      // Other fields...
      "io.modelcontextprotocol/clientCapabilities": {
        "extensions": {
          "io.modelcontextprotocol/enterprise-managed-authorization": {},
        },
      },
    },
  },
}
  1. SSO 지원 — 사용자가 엔터프라이즈 IdP로 MCP 클라이언트에 인증하게. 로그인 중 발급된 Identity Assertion(OpenID ID Token 또는 SAML assertion)을 나중에 쓸 수 있게 저장.

  2. ID-JAG 처리 — 서버가 엔터프라이즈 관리 인증을 요구한다고 나타내면, 앞서 얻은 Identity Assertion을 사용해 엔터프라이즈 IdP의 인가 엔드포인트에서 ID-JAG 토큰을 요청. 이 ID-JAG를 MCP Authorization Server의 접근 토큰으로 교환. 사용자를 MCP Authorization Server의 인가 엔드포인트로 리다이렉트하지 말 것.

  3. 조직 설정 지원 — 관리자가 엔터프라이즈 IdP의 엔드포인트를 구성하게. 보통 사용자별 설정보다 조직 수준 설정으로.

  4. 토큰 스코프 존중 — 엔터프라이즈 IdP가 발급한 토큰은 표준 MCP 인가와 다른 스코프 제한을 가질 수 있어요. 스코프 오류를 우아하게 처리.

MCP 서버용

엔터프라이즈 관리 인가를 요구하려면:

  1. 익스텐션 선언 — 서버의 인가 메타데이터에, 클라이언트가 엔터프라이즈 관리 흐름을 사용해야 한다고 나타내는.

  2. IdP 관리 API 통합 (선택) — 엔터프라이즈 관리자가 IdP 관리 콘솔에서 접근 정책을 구성할 수 있도록 서버의 리소스 디스크립터를 게시.

MCP Authorization Server용

  1. ID-JAG 검증 — 엔터프라이즈 IdP가 발급한 ID-JAG을 검증. 보통 JWT 서명을 IdP의 JWKS 엔드포인트에 대해 검증하고 토큰의 audience·issuer·만료를 확인.

  2. IdP 클레임을 권한에 매핑 — ID-JAG 토큰은 서버가 직원이 누구이며 무엇에 접근 가능한지 결정하는 데 쓰는 클레임(스코프와 리소스 정보)을 지녀요. 이 클레임에 기반해 인가 로직을 정의.

  3. 계정 연결 처리 — ID-JAG 토큰은 항상 subject 클레임을 포함하고 이메일 클레임을 추가로 포함할 수 있어요. 이 클레임으로 엔터프라이즈 신원을 시스템의 기존 계정에 연결할 수 있어요. subject 클레임을 사용자의 기본 안정 식별자로 쓰고, 엔터프라이즈 관리 인가 구성 전에 만들어진 기존 계정과의 매칭에는 이메일 클레임으로 폴백하세요.

클라이언트 지원

이 익스텐션의 지원은 클라이언트마다 달라요. 익스텐션은 옵트인이며 기본으로 활성화되지 않아요.

MCP 클라이언트 전반의 현재 구현 상태는 client matrix에서 확인하세요. Enterprise-Managed Authorization은 보통 MCP 클라이언트 앱 외에도 조직의 IT 팀의 클라이언트 수준 지원이 필요해요.

관련 리소스

더 알아보기 (Learn more)