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 |