Spring/Spring Security

[JWT] 2-3. Practical Application: OAuth2 & OpenID

noahkim_ 2025. 7. 22. 12:11

1. JWTs and OAuth2

JWT를 Access Token으로 사용

  • 토큰 안에 권한 범위, 사용자 정보, 접근 권한 등을 직접 담을 수 있음
  • 토큰 유효기간을 지정할 수 있음
  • 디지털 서명이 되어있어 resource server에서 자체적으로 검증 가능 (매번 authorization server에 인증 요청을 하지 않아도 됨)
  • 많은 IdP들이 JWT 형식으로 Access Token을 발급함

 

JWT를 Refresh Token으로 사용

  • Authorization Server에 보내서 새 Access Token을 발급받음

 

2. JWTs and OpenID Connect

OpenID Connect Flows and JWTs

 

3. Example

  • authorization server를 두어 특정 로그인 제공자에 종속되지 않고, 로그인할떄마다 다른 IdP로 인증 가능함

 

SSO 시나리오

  • 유저가 처음 app1.com으로 로그인하면 Auth0에서 인증 및 권한 허용
  • 이후 app2.com 접속 시 로그인 화면 없이 자동 로그인됨
  • 두 앱이 서로 연결돼 있지 않아도, Auth0가 동일하면 가능함
    • 사용자 세션이 유지되고 있어 서, 인증 상태를 기억하고 새 토큰을 발급해줌