Files
vpd-permission-poc/docs/adr/0001-dds-mcp-service-identity.md

1.3 KiB

ADR-0001: DDS MCP Context에는 개인 IAM 사용자 대신 Confidential Application을 사용한다

상태: Accepted · 날짜: 2026-07-02 · 관련 이슈: #617

결정

OCI IAM Confidential Application의 client-credentials token을 database-access token으로 사용한다. MCP 요청자는 기존 opaque Bearer → CB_APP_USER 매핑으로 판정하고, 그 사용자를 local DDS END USER로 attach한다.

근거

client-credentials token의 client_id/sub는 서비스 애플리케이션이다. 이를 업무 사용자로 사용하면 모든 MCP 요청이 같은 사람 권한으로 해석되는 오류가 생긴다. 서비스 승인과 업무 사용자 신원을 분리하면 기존 사용자·그룹·권한 관리 모델을 유지하면서 DDS가 사용자별 DATA ROLE/DATA GRANT를 집행한다.

검증

ADB OCI IAM 설정, database credential, application identity, TLS 연결을 구성하고 실제 EndUserSecurityContext attach/query/clear와 SSE MCP tools/call HTTP 200을 확인했다.

결과

  • 개인 IAM 계정·장기 token은 런타임에 사용하지 않는다.
  • client ID/secret, raw token, lookup key는 secret store/환경 변수 외에 저장하지 않는다.
  • IAM 사용자 token을 직접 받아 DDS에 전달하는 OBO/authorization-code 모델은 별도 ADR과 endpoint 검증으로만 도입한다.