[OAuth 2.0 마스터] 3장_네 개의 단계

OAuth 2.0 클라이언트가 되기 위한 과정을 네 개의 단계로 정리한다.

클라이언트 애플리케이션 등록

서비스 제공자는 자신에게 요청하는 클라이언트가 누구인지 알아야한다.
그래서, 클라이언트 애플리케이션 등록이 필요하다.
애플리케이션 등록 후에 사용하게 될 정보 셋은 다음과 같다.

  1. client id
    클라이언트 애플리케이션의 고유한 ID
  2. client secret
    서비스 제공자에게 요청을 보낼 때, 애플리케이션의 신원을 알려주는 비밀 키
  3. redirection endpoint
    서비스 제공자가 응답을 전달하기 위해 사용하는 엔드 포인트
  4. authorization endpoint
    클라이언트 애플리케이션이 인가 플로우를 시작할 때 사용하는 엔드 포인트
  5. token endpoint
    클라이언트 애플리케이션이 토큰 플로우를 시작할 때 사용하는 엔드 포인트

엑세스 토큰 얻기

애플리케이션을 등록했으면, 이제 엑세스 토큰을 얻어야한다.
애플리케이션에 따라 워크 플로우가 결정되는데,

  1. 애플리케이션이 신뢰 애플리케이션이면, 인가 코드 그랜트 플로우를
  2. 애플리케이션이 비신뢰 애플리케이션이면, 그랜트 플로우를 사용할 것이다.

그런데, 액세스 토큰이 무엇일까 ?

엑세스 토큰

하나의 리소스나 다수의 리소스에 대해, 일정 기간 동안 접근할 수 있는 권한을 캡슐화한 것이다.

  1. 범위 (scope)
    토큰 보유자가 접근할 수 있는 보호된 리소스 셋이다.

  1. 접근 기간
    서비스 제공자가 발급하는 대부분의 토큰은, 해당 토큰이 가지고 있는 접근 권한이 더 이상 유효하지 않게 되는 만료 시간을 가진다.

엑세스 토큰 사용

엑세스 토큰을 받았으면, 이제 서비스 제공자에게 API 를 호출해야한다.
이 때, 엑세스 토큰을 전달해야하는데 전달 하는 방법으로는,

  1. 인가 요청 Header Field
  2. 인코딩된 Form Parameter
  3. URI Query Parameter

엑세스 토큰 갱신

토큰이 만료되면, 이 토큰을 이용해서 더 이상 보호된 리스에 접근을 못한다.
그래서 리소스에 계속 접근하기 위해서는 다음 두 가지 중에 하나를 수행해야한다.

  1. 전체적인 인증 프로세스
  2. 리프레시 토큰을 이용해서 엑세스 토큰 갱신

(리프레시 토큰은 서비스 제공자로부터, 엑세스 토큰을 발급 받을 때 함께 응답 받는다)


OAuth 2.0 마스터 <찰스 비히스>

Comments