본문 바로가기

Backend Study/Server

OAuth 2.0

학습 전 알아야 할 주체
1. Resource Owner (유저)

2. Client (우리 서버)

3. Resource Server (데이터를 가진 서버)

 

등록 절차

우리의 서버 즉 client는 리소스 서버를 이용하기 위해서 미리 등록을 해둬야한다.

여기서 알아야 할 3가지 요소가 있다.

Client ID, Client Secret(외부 노출 위험), Authorized Redirect URIs (Authorized code을 받을 주소)

(Resource Server에 Authorized code를 입력하여 클라이언트는 Client ID와 Client Secret을 받는다.)

 

인증 과정

Resource Owner에게 client는 https://resource_server/?client_id=1&scope=B,C&redirect_uri=https://client/callback을 전달

Resource Owner는 Resource server로 접속, Resource server는 로그인이 안되어있다면 로그인을 하도록 한다.

그때서야 client ID와 redirect URL이 일치하는지 확인하고,. 같으면 scope에 관한 메시지 전달한다. (이것이 동의화면!)

 

Authorization code

Resource Server는 https://client/callback?code=3 를 통하여 Resource Owner로 전달하고, Resource Owner는 client에 전달한다.

client는 Resource Server에 접근한다. (https://resoucre_server/token?grant_type=authorization_code&code=3&redirect_uri=https://client/callback&client_id=1&client_server=2)

Resource Server는 이 정보들을 확인한다.

 

Access Token 발급

oauth의 목적은 Access Token을 발급하는 것이다. Resource Server는 위에서 정보들을 확인한 후 Client에게 Access Token을 발급하고, Client는 AccessToken을 내부적으로 저장한다.

 

API

Resource Server를 호출하기 위해 API가 필요하다. 이를 위해 Access Token이 필요하다. 

이 때 헤더값으로 Authorization Bearer를 전달하는 방식을 많이 사용한다.

 

refresh Token

refresh token을 저장하고 있다가, Access Token 유효기간이 만료되면 Refresh token으로 Access Token을 발급받는다.

(refresh token도 갱신되는 곳이 있고, 아닌 곳도 있다.)

 

참고 )

생활코딩

 

수업을 마치며 - 생활코딩

여기까지 오시느라 고생하셨습니다. 여기서는 앞으로 공부할만한 주제를 소개해드리겠습니다. 축하합니다!  지식지도 관련된 지식의 지도입니다. 지도를 참고해서 스스로 학습 경로를 탐험해

opentutorials.org