Spring/Oauth2

ID Token

hwanguu 2025. 1. 17. 00:08

ID Token 이란

ID Token은 사용자가 인증 되었음을 증명하는 토큰이다.

 

  • ID 토큰은 사용자가 인증 되었음을 증명하는 결과물로서 OIDC 요청 시 access token 과 함께 클라이언트에게 전달되는 토큰이다
  • ID 토큰은 JWT(JSON 웹 토큰)으로 표현되며 헤더, 페이로드 및 서명으로 구성된다
  • ID 토큰은 개인 키로 발급자가 서명하는 것으로서 토큰의 출처를 보장하고 변조되지 않았음을 보장한다.
  • 어플리케이션은 공개 키로 ID 토큰을 검증 및 유효성을 검사하고 만료여부 등 토큰의 클레임을 확인 한다
  • 클라이언트는 클레임 정보에 포함되어 있는 사용자명, 이메일을 활용하여 인증 관리를 할 수 있다

 

ID Token vs Access Token

 

ID Token 은 OpenID Provider에서 사용자가 인증 되었을때 발급되며 클라이언트(서버)에서 사용자의 신원확인을 위해 사용되어져야 한다. API 호출에 사용하면 안된다.

 

Access Token 은 인증을 위해 사용되는 것이 아닌 Authorization Server 에서 발급 받은후 Resource Server에 접근하기

위해 사용되는 Token 이다

 

 

ID Token, Access Token 비교

구분 ID Token Access Token
목적 사용자 인증 정보 제공 API 요청에 대한 권한 부여
발급 프로토콜 OpenID Connect OAuth 2.0
주요 사용처 클라이언트 애플리케이션에서 신원 확인 리소스 서버(API)에 요청 인증
포맷 일반적으로 JWT JWT 또는 기타 형식
수명 보통 짧음 보통 짧지만 Refresh Token으로 연장 가능

 

 

ID Token은 "이 사용자는 누구인가?"를 증명하는 데 사용되며

 

Access Token은 "이 사용자가 이 리소스에 접근할 수 있는 권한이 있는가?"를 확인하는 데 사용된다.

 

 

References 및 사진 출처

정수원 스프링 시큐리티 OAuth2

'Spring > Oauth2' 카테고리의 다른 글

OIDC Scope  (0) 2025.01.17
Open ID Connect OIDC  (0) 2025.01.16
Oauth2 PKCE-enhanced Authorization Code Grant  (0) 2025.01.12
Oauth2 Refresh Token Grant  (0) 2025.01.12
Oauth2 Client Credentials Grant  (0) 2025.01.12