WEB2 - OAuth 2.0 : 5. Resource Server의 승인

Jisoo Shin·2023년 7월 24일
0

OAuth 2.0

목록 보기
5/7

https://www.youtube.com/watch?v=O0Rx9SRPzs4&list=PLuHgQVnccGMA4guyznDlykFJh28_R08Q-&index=5

위 영상을 보고 작성한 글입니다.

WEB2 - OAuth 2.0 : 5. Resource Server의 승인

현재까지는 Resource Owner에 대한 허락을 획득한 상태이다.

따라서, 현재 Resource Server는 "user id 1은 scope b&c에 대한 작업을 Client id 1번에게 허용했다" 라는 정보까지 가지게 되는 것이다.

이제부터는 Resource Owner에 대한 허락을 받았으니, Resource Server가 이를 승인해줘야 한다.

그래서 발급되는 것이 바로 ❗ authorization code ❗ 이다.

Authorization code

: Resource Server는 authorization code (임시 비밀번호)를 생성해서 Resource Owner에게 전송한다. 아래의 그림처럼.

http://client/callback 이라는 코드는 3으로 이동하라고 Resource ServerResource Owner의 Web Browser에게 명령한 것이다.

여기서 ?code=3 부분이 바로 authorization code: 3 부분에 해당하는 것이다.

그럼, Resource Owner의 Web Browser는 Location의 Header 값에 의해서, Resource Owner의 사용자(인간)이 인식하지도 못하게 해당 주소(https://client/callback?code=3)로 이동을 하게 된다.

그러면 이제 Client는 해당 주소를 통해 authorization code:3이라는 값을 가지게 되는 것이다.

∴ 이때, Client가 이제 authorization code:3이라는 값을 Resource Server에게 전달해서 ❗ Access Token ❗ 을 발급받기 전 단계까지 온 상태이다.

이제 Client는 Resource Owner를 통하지 않고, Resource Server에게 해당 주소를 통해 직접 접속한다.
이때 전송하는 정보들은 authorization code, redirect_uri, client_id 그리고 client_secret 값이다.
여기서 중요한 것은 client_secret값을 전송한다는 것이다.
(1) authorization code 그리고 (2) client_secret이라는 2개의 비밀정보를 조합해서 Resource Server에게 전송하는 것이다.

그럼 Resource Server는 전송받은 authorization_code가 3번이라는 것을 보고 자신이 가지고 있는 authorization_code가 3번에 해당되는 정보와 일치하는지를 확인한다.

일치 여부를 확인하는 정보들은 다음과 같다.
1. Client id
2. Client Secret
3. redirect_url

본 정보들이 authorization_code에 해당되는 자신이 가지고 있는 정보들과 모두 일치한다면, 이제 다음 단계로 진행해서 "Access Token"을 발급한다.

0개의 댓글