OAuth 프로세스

charco·2021년 6월 13일
0

나도TIL

목록 보기
8/55

생활 코딩의 OAuth 수업을 정리한 글입니다.

OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다. -위키백과-

어느 웹사이트에 로그인할때 우리는 구글이나 네이버, 페이스북 계정으로
로그인 하는 경우가 있다. OAuth가 이것을 가능하게 해준다.


Client의 등록


위의 그림을 보면 뭐가 뭔지 잘 모를 것이다.
알기 쉽게 Client는 나의 애플리케이션, Resource Owner은 사용자,
Resource Server은 구글, 페이스북과 같은 소셜 서비스라고 보자.

먼저 Resource Server에 내 애플리케이션(Client) 가 등록돼있어야 한다.
어찌 저찌해서 등록하면 여러 정보들을 알게 되는데 가장 중요한 3가지는 이거다.

  • Client Id
  • Client Secret
  • Authorized Redirect URIs

Client ID 는 Resource Server에 등록한 내 애플리케이션의 식별자,
Client Secret 은 그에 대한 암호,
Authorized Redirect URIs 는 authorizion code 를 받게 될 URI이다.

Resource Owner(사용자)의 인증

OAuth 2.0 의 최종 목표는 accessToken을 발급하는 것이다.
accessToken으로 API들을 이용할 수 있다.

이해하기 쉽게 구글을 예로 들겟다.

  1. Client 가 Resource Owner에게 "Google로 로그인" 이라는 버튼을 보여준다.
  2. 버튼을 누른다.
  3. 그러면 "https://구글리소스서버/clientid=123&redirect_uri=http://asdask/callback" 를 요청한다.
  4. 구글 Resource Server 에서 해당 client id 와 redirect uri를 갖고 있는 Client 가 있는지 확인한다.
  5. Client 가 있으면 요청을 한 Resource Owner 의 아이디와 특정 서비스에 대한 접근 권한을 저장하고 authorization code를 담은 redirect-uri로 요청하게 한다.
  6. Client 는 authorization 코드를 받고 Client Id, Client Secret, Redirect URI, authorization code 가 모두 담긴 URI 를 Resource Server에 요청한다.
  7. Resource Server는 정보가 모두 맞는지 확인하고 accessToken 을 발급해 Client에게 준다.
  8. 이제 Resource Owner는 구글이 아닌 내 애플리케이션에서 특정 서비스를 이용할 수 있게 됐다.

설명을 잘 못한다... 그냥 생활 코딩 강의를 보자.

profile
아직 배우는 중입니다

0개의 댓글