피드로 돌아가기
Dev.toSecurity
원문 읽기
RFC 9728 기반 Metadata 공개로 클라이언트 온보딩 시간 92% 단축
Why your MCP server should serve OAuth Protected Resource Metadata — AuthKit + RFC 9728
AI 요약
Context
다양한 MCP 클라이언트가 혼재된 환경에서 인증 설정의 하드코딩으로 인한 운영 효율 저하 발생. 매 클라이언트 추가 시 수동 런북 작성과 인증 설정 변경에 따른 문서 최신화 비용이 지속적으로 증가하는 병목 지점 확인.
Technical Solution
- RFC 9728 표준을 적용하여 /.well-known/oauth-protected-resource 경로에 인증 메타데이터를 공개하는 Discovery 메커니즘 구축
- RFC 8707 Resource Indicators를 통한 정밀한 Audience 검증 로직 구현으로 JWT 기반의 보안 경계 설정
- AuthKit URL과 Issuer를 분리하여 메타데이터에 명시함으로써 인간 대상 로그인 UI와 토큰 검증 서버의 혼선 방지
- Issuer Trailing Slash 허용 로직을 메타데이터에 명시하여 다양한 환경의 클라이언트 호환성 확보
- 401 응답의 WWW-Authenticate 헤더에 메타데이터 URL을 포함시켜 미설정 클라이언트의 자동 Bootstrap 유도
- Postgres 기반의 agent_tool_policy_server_gate를 도입하여 메타데이터(계약)와 별개로 실제 권한(강제)을 분리한 서버 사이드 Scope Gate 설계
실천 포인트
- 표준 기반의 Discovery 엔드포인트를 구축하여 클라이언트 의존성 제거 - JWT Audience 검증 시 실제 배포 환경(CDN, Custom Domain)의 URL 일치 여부 확인 - 외부 라이브러리의 기본 동작(예: WorkOS의 Audience 미포함)을 분석하여 메타데이터에 명시적 가이드 제공 - 메타데이터 생성기와 검증기를 동일한 Fixture로 테스트하는 CI 스냅샷 테스트 도입