Files
vpd-permission-poc/docs/design/617-dds-mcp-end-user-context/fn-authenticate-mcp-bearer.md

1.1 KiB

함수 명세: authenticateMcpBearer (#617)

상태: Implemented · 구현: DdsMcpBearerAuthenticator

책임

MCP Tool 요청의 opaque Bearer를 활성 CB_APP_USER로 해석하고 해당 사용자의 게시된 local DDS principal을 반환한다. OCI IAM client-credentials token을 업무 사용자 token으로 해석하지 않는다.

입력과 출력

  • 입력: Authorization: Bearer <opaque-token>
  • 출력: applicationUserId, 표시 사용자명, DDS_U_<id>, data role 이름, lookup-key 참조

규칙

  1. CB_AGENT_BEARER_KEY의 해시 일치, 만료·회수 여부와 CB_APP_USER.active를 매 Tool 요청마다 확인한다.
  2. CB_DDS_END_USER_MAP에서 PUBLISHED 상태의 사용자 매핑을 반드시 찾는다.
  3. 하나라도 없으면 AUTHORIZATION_DENIED로 끝내며 context attach 또는 보호 SQL을 호출하지 않는다.
  4. raw bearer와 hash는 로그·MCP 응답에 노출하지 않는다.

주의

현재 opaque Bearer의 사용자 매핑이 DDS 집행 주체를 결정한다. OCI IAM JWT의 사람 claim을 직접 사용하는 기능은 별도 OBO/authorization-code 확장이다.