OAuth 란?

김지민·2022년 8월 13일
0

참고 강의입니다!
https://www.youtube.com/watch?v=vo_0PW3V5zU&list=PLuHgQVnccGMA4guyznDlykFJh28_R08Q-&index=2

삼자간의 복잡한 이해관계로 엮어있었다.

이제부터는 api 를 사용하면
자바스크립트를 통해서 서버쪽 기술 없이 제어할 수 없게 된다.

OAuth 란?

사용자가 우리 서비를 이용해서 내용을 입력하면 google facebook과 같은 다른 서비스에 접근할 수 있도록 허가를 받는 것이다.

사용자 입장에서 google과 같은 서비스를 믿기가 어렵다.
oAuth를 이용하면 그들이 서비스와 안전하게 사용할 수 있다.

사용자에게 카카오의 accestoken을 획득 후에 accestoken으로 사용자의 카카오 서비스를 사용할 수 있도록한다.

이것저것 만져보면서 연습을 하는 것보다 로그인 구현은 보안과 이어지기 때문에
정확하게 알고 구현하는 것이 중요하다고 생각했다.

덕분에 실제로 client secret은 외부로 유출되면 안되는 것을 알게되면 보안적인 부분도 놓치지 않을 수 있었다.

추상적인 개념 용어가 헷갈린다.

용어를 먼저 잡고 가자!

user (Resource Owner) : 자원을 가지고 있는 사람 -> 사용자

mine (Clinet) : 사용하고자 하는 사람 -> 개발자

resource sever : 우리가 사용하고자 하는 자원을 가지고 제공하는 사람

OAuth의 등록

clinet ID : application을 식별하는 식별자
client Secret: clinet secret은 외부에 노출되면 보안 사고가 난다.
Authorized redirect URLs : resource server 에게 리소스 전달 받을 주소

인증 받는 과정

resource server은 위 3가지 정보를 알 수 있다.

resource owner에게 화면을 보여준다.

사용자의 동의를 받아야 한다. -> 링크를 걸어주면 된다. (clinet id, scope, redirect url)

승인 받는 과정

authorization code를 Resource server가 resource owner에게 제공한다.
그러면 resourve owner은 authorization code가 포함되어 있는 주소로 이동하게 된다.

그러면 클라이언트는 authorization code를 받급받을 수 있다.

다음, clinet는 resouce server에게 다시 (authorization code와 client secret)을 resource server에게 전송한다.

엑세스 token 발급 받기

resource server은 accessToken를 client에게 응답해준다.
access Tokent은 클라이언트가 accessToken으로 접근 가능하게 해준다.

Resource server 핸들링

resource server가 client들에게 알려주는 방식대로 진행해주어야 한다.
-> 이를 API라고 한다.

profile
💡Habit is a second nature. [Git] https://github.com/Kimjimin97

0개의 댓글