[OAuth 2.0 마스터] 3장_네 개의 단계
OAuth 2.0 클라이언트가 되기 위한 과정을 네 개의 단계로 정리한다.
클라이언트 애플리케이션 등록
서비스 제공자는 자신에게 요청하는 클라이언트가 누구인지 알아야한다.
그래서, 클라이언트 애플리케이션 등록이 필요하다.
애플리케이션 등록 후에 사용하게 될 정보 셋은 다음과 같다.
- client id
클라이언트 애플리케이션의 고유한 ID - client secret
서비스 제공자에게 요청을 보낼 때, 애플리케이션의 신원을 알려주는 비밀 키 - redirection endpoint
서비스 제공자가 응답을 전달하기 위해 사용하는 엔드 포인트 - authorization endpoint
클라이언트 애플리케이션이 인가 플로우를 시작할 때 사용하는 엔드 포인트 - token endpoint
클라이언트 애플리케이션이 토큰 플로우를 시작할 때 사용하는 엔드 포인트
엑세스 토큰 얻기
애플리케이션을 등록했으면, 이제 엑세스 토큰을 얻어야한다.
애플리케이션에 따라 워크 플로우가 결정되는데,
- 애플리케이션이 신뢰 애플리케이션이면, 인가 코드 그랜트 플로우를
- 애플리케이션이 비신뢰 애플리케이션이면, 그랜트 플로우를 사용할 것이다.
그런데, 액세스 토큰이 무엇일까 ?
엑세스 토큰
하나의 리소스나 다수의 리소스에 대해, 일정 기간 동안 접근할 수 있는 권한을 캡슐화한 것이다.
- 범위 (scope)
토큰 보유자가 접근할 수 있는 보호된 리소스 셋이다.
- 접근 기간
서비스 제공자가 발급하는 대부분의 토큰은, 해당 토큰이 가지고 있는 접근 권한이 더 이상 유효하지 않게 되는 만료 시간을 가진다.
엑세스 토큰 사용
엑세스 토큰을 받았으면, 이제 서비스 제공자에게 API 를 호출해야한다.
이 때, 엑세스 토큰을 전달해야하는데 전달 하는 방법으로는,
- 인가 요청 Header Field
- 인코딩된 Form Parameter
- URI Query Parameter
엑세스 토큰 갱신
토큰이 만료되면, 이 토큰을 이용해서 더 이상 보호된 리스에 접근을 못한다.
그래서 리소스에 계속 접근하기 위해서는 다음 두 가지 중에 하나를 수행해야한다.
- 전체적인 인증 프로세스
- 리프레시 토큰을 이용해서 엑세스 토큰 갱신
(리프레시 토큰은 서비스 제공자로부터, 엑세스 토큰을 발급 받을 때 함께 응답 받는다)
OAuth 2.0 마스터 <찰스 비히스>