스프링 시큐리티 OAuth2/OAuth 2.0 용어 이해

Oauth 2.0 Token Types 이해

webmaster 2023. 1. 6. 18:03
728x90

Access Token

  • 클라이언트에서 사용자의 보호된 리소스에 접근하기 위해 사용하는 일종의 자격 증명으로서 역할을 하며 리소스 소유자가 클라이언트에게 부여한 권한 부여의 표현이다
  • 일반적으로 JWT(JSON Web Tokens) 형식을 취하지만 사양에 따라 그럴 필요는 없다.
  • 토큰에는 해당 액세스 기간, 범위 및 서버에 필요한 기타 정보가 있다.
  • 타입에는 식별자 타입 (Identifier Type)과 자체 포함타입 (Self-contained Type) 이 있다

Refresh Token

  • 액세스 토큰이 만료된 후 새 액세스 토큰을 얻기 위해 클라이언트 응용 프로그램에서 사용하는 자격 증명
  • 액세스 토큰이 만료되는 경우 클라이언트는 권한 부여 서버로 인증하고 Refresh Token을 전달한다.
  • 인증 서버는 Refresh Token의 유효성을 검사하고 새 액세스 토큰을 발급한다.
  • Refresh Token 은 액세스 토큰과 달리 권한 서버 토큰 엔드포인트에만 보내지고 리소스 서버에는 보내지 않는다.

ID Token

  • OpenID Connect 챕터에서 학습함

Authorization Code

  • 권한 부여 코드 흐름에서 사용되며 이 코드는 클라이언트가 액세스 토큰과 교환할 임시 코드임(한번 사용하면 폐기한다)
  • 사용자가 클라이언트가 요청하는 정보를 확인하고 인가 서버로부터 리다이렉트 되어 받아온다.

AccessToken 유형

식별자 타입(Identifier Type)

식별자 타입

  • 클라이언트가 인증서버에 인증을 요청하고, 토큰(난수)을 발행해 주고, 해당 난수를 인증서버에서 저장하고 있는다.
  • 인가서버는 이 토큰에 대한 고유 식별자만,클라이언트에 다시 발행한다.
  • 이 토큰을 수신하는 API는 토큰의 유효성을 검사하기 위해 인가서버에 대한 백 채널 통신을 열고 DB를 조회해야 한다.
    • 네트워크에 대한 부하가 발생한다는 단점이 있다,

자체 포함 타입

자체 포함 타입(JWT)

  • 클라이 언트가 인가 서버에 인증을 요청하고, 서명된 토큰(JWT)를 발행해 준다.(JWT는 반드시 서명이라는 작업이 필요하며, 서명이 끝난 토큰은 자격증명이 완료된 토큰이다.)
  • JWT 토큰 형식으로 발급되며, 클레임 및 만료가 있는 보호된 데이터 구조이다
  • 리소스 서버 API가 검증 키 등의 핵심 자료에 대해 알게 되면 발급자와 통실할 필요 없이 자체 포함된 토큰의 유효성을 검사할 수 있다.
  • 특정한 암호와 알고리즘에 의해 개인키로 서명되고, 공개 키로 검증할 수 있으며 만료될 때까지 유효하다.
728x90

'스프링 시큐리티 OAuth2 > OAuth 2.0 용어 이해' 카테고리의 다른 글

OAuth 2.0 Client Types 이해  (0) 2023.01.04
OAuth 2.0 Roles 이해  (0) 2023.01.04
keycloak 설치 및 설정  (0) 2023.01.02
OAuth 2.0 소개  (0) 2023.01.02