커스텀 OIDC 토큰 대상(Audiences) 지원
요약
Vercel이 커스텀 OIDC 대상(Audiences) 지원을 시작하여 제3자 제공업체와의 안전한 서비스 간 인증을 강화했습니다. 이를 통해 특정 대상 클레임을 포함한 토큰을 발행함으로써 토큰 재사용 공격을 방지하고 보안 모범 사례를 준수할 수 있습니다.
핵심 포인트
- 커스텀 대상(aud) 지원으로 서비스 간 보안 인증 강화
- 토큰 재사용(Replay attack) 방지를 위한 보안 모범 사례 구현
- jti(JWT ID)를 통한 토큰 사용 감사 및 추적 가능
- 모든 Vercel 리전에 복제되어 낮은 지연 시간 보장
Vercel의 OIDC 발행자 (oidc.vercel.com)가 이제 커스텀 대상(custom audiences)을 지원합니다. 배포(Deployments) 시 특정 대상 클레임(audience claim)을 포함한 OIDC 토큰을 요청할 수 있어, 제3자 제공업체(third-party providers)와의 안전한 서비스 간 인증(service-to-service authentication)이 가능해집니다.
기존 Vercel OIDC 토큰은 고정된 대상(aud: https://vercel.com/{owner})으로 발행되었습니다. 대부분의 클라우드 제공업체는 특정 대상 값을 요구하지 않지만, 제공업체마다 고유한 대상을 사용하는 것은 보안 모범 사례(security best practice)입니다. 만약 특정 제공업체가 침해되더라도, 공격자가 해당 토큰을 다른 제공업체에 재사용(replay)할 수 없습니다. 클레임(claim)이 일치하지 않으면 검증(verification)이 실패하기 때문입니다. 이 새로운 서비스를 통해 추가적인 인프라를 관리하지 않고도 제공업체별로 특화된 토큰을 쉽게 발행(mint)할 수 있습니다.
Vercel 배포가 실행될 때, Vercel이 서명한 OIDC 토큰을 수신합니다. 새로운 교환(exchange) 서비스는 이 토큰을 수락하고, 동일한 키로 서명되었지만 다운스트림 서비스(downstream service)를 대상으로 업데이트된 대상(aud) 클레임을 가진 새로운 토큰을 반환합니다.
교환된 토큰:
교환된 토큰에 고유 식별자를 할당하기 위해 선택적으로 jti (JWT ID)를 전달할 수 있습니다. 이는 서비스 전반에 걸친 토큰 사용을 감사(auditing)하고 추적(tracing)하는 데 유용합니다. 예를 들어, 로그에서 특정 토큰 교환과 다운스트림 API 호출을 상관관계(correlating) 지을 수 있습니다.
다운스트림 서비스는 https://oidc.vercel.com/{owner}/.well-known/jwks 에서 사용할 수 있는 공개 키(public key)를 사용하여 교환된 토큰을 검증합니다.
서명 키(signing key)와 토큰 교환 엔드포인트(token exchange endpoint) 모두 모든 Vercel 리전(Vercel regions)에 복제되어, 배포가 어디에서 실행되든 관계없이 낮은 지연 시간(low-latency)의 토큰 교환을 보장합니다.
왜 커스텀 대상(custom audiences)인가요?
작동 방식
-
모든 원본 클레임 (claims)을 보존합니다 (project, environment, owner, expiration)
-
발행자 (issuer,
iss)를https://oidc.vercel.com/{owner}로 설정하며, 이는 배포를 소유한 팀(team)으로 범위가 지정됩니다. -
원본 토큰의 대상 (audience) 및 발행 시간 (issued-at time)을 포함하는 액터 (actor,
act) 클레임을 포함하여, 감사 가능한 위임 체인 (auditable delegation chain)을 제공합니다. -
대상 (audience,
aud)을 요청된 다운스트림 대상 (downstream audience)으로 업데이트합니다. -
발행 시간 (issued-at,
iat)을 현재 타임스탬프로 업데이트하여, 새 토큰이 생성된 시점을 반영합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Vercel AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기