OAuth 2.0 원리

2021. 8. 7. 16:33카테고리 없음

출처:
https://opentutorials.org/module/3668
https://youtube.com/playlist?list=PLuHgQVnccGMA4guyznDlykFJh28_R08Q-

Mine에서 Their 서비스를 유저에게 적용하기 위해, accessToken 발급이 필요하다

, id/pw같은 정보 노출이 일어나는 것을 방지하기 위한 기술이 OAuth 기술이다

따라서 이를 이용하면, 내가 정보들을 저장하지 않고도 사용자 식별/구별이 가능함

 

위는 설명을 위해 그렇게 부른거고, 원래 정식명칭은 다음과 같다.

여기서 인증관련 담당서버가 있는데, 편의상 리소스서버랑 합쳐서 리소스서버라 하고 설명한다

 

절차

= 클라이언트가 리소스서버에 그들의 서비스를 사용하겠다고 등록하는 절차

3가지 요소를 공통으로 갖음 

(앱식별자, 비밀번호, 서버가 권한부여 과정에서 주소로 전달해달라는 주소)

 

예를 들어, 구글 등록절차를 살펴보자

1. https://console.cloud.google.com/

2. 프로젝트> API 서비스> 사용자 인증 정보 이동

3. 사용자 인증 정보 만들기> OAuth Client ID

 

인증 절차

최소한의 동의만 하게 해라!

위와 같이 리소스오너에게 사용자 동의 요청 페이지를 주면 

1. 로그인

‎2. 클라이언트 id 확인, 리다이렉트url 같은 확인

3. (같으면) ‎권한 요청

 

4. (권한동의하면) 

오너-> 서버:: 유저아이디, 동의한 권한 확인 (url전송)

서버-> 오너:: 권한코드(임시비밀번호) 생성해서 url보냄

오너:: 서버에게 받은 url 이동 == 클라이언트에게 오너정보 보냄

클라이언트-> 서버:: 오너에게 받은거 결합해서 보냄

서버:: 클라이언트에게 받은 정보들 일치하는지 확인

 

5. (일치하면) accessToken 발급

서버-> 클라이언트:: 액세스토큰(사용자id 대해 유효한 권한정보) 보냄

클라이언트:: 저장해둠

 

API 

= Their 서비스를 사용하기 위해 Their 제공하는 사용방법

API 사용하기 위해서는 경우에 따라 인증이 필요할 수도 있다

 

API 위한 accessToken(수명O) 가져오는 방법은..

"google api access token oauth" 같이 검색하여 확인해보자

accessToken 만료되면, refreshToken 사용

 

++

REST API는 클라이언트가 사용자 인증 정보를 따로 직접 관리한다

https://www.redhat.com/ko/topics/api/what-is-a-rest-api https://meetup.toast.com/posts/92

 

반응형