OAuth 정리 2 - (feat. 생활코딩)

hodu·2022년 8월 20일
0
post-thumbnail

이번 포스팅에서는 지난포스팅보다 좀 더 구체적인 이야기를 해보려고 한다.
이 내용은 생활코딩 영상을 정리한 내용이며 아래 영상에서 확인할 수 있습니다.
(https://youtu.be/hm2r6LtUbk8)

1) 사용자 동의 과정


구글로그인을 시도할 경우 사용자 동의과정을 거친다.

  1. 로그인 성공 시 Resource Server에서는 자신이 갖고있는 Client ID의 Redirect URI가 같은지 확인한다.
  2. URI가 같다면 정보요청을 한다고 안내를 하고, OK버튼을 누르면 정보를 제공하게 된다.
    URI가 다르다면 무시한다.
  3. OK버튼을 누르게 되면 Resource server에 user_id와 scope(동의한 정보의 목록)이 전송된다.

2) 실제 인증 처리

실제 인증 처리는 다음과 같다.

  1. Resource Server에서 Resource Owner에게 Authorization code를 전송한다.
    이 코드는 (https://.../callback?code=1234)와 같이 전송되며 맨 뒤에 붙은 code가 바로 Authorization code이다.
  2. 이 때 Resource Owner는 이미 승인을 했으므로 거치지 않고 바로 Client로 넘어가서 해당 코드들을 전달해준다.
  3. Client에서 Resource Server로 (https://.../token/...)이라는 주소에 code, Redirect Uri, Client ID, SECRET 정보들을 담아서 보내준다.
  4. Resource Server에서는 해당 정보가 일치하면 다음 단계(access token 발급)로 넘어간다.

3) Access Token 발급

  1. Resource Server, Client에서 Authorization Code를 삭제한다. 👉 다시 인증을 하지 않기 위해서(라고 하는데 잘 모르겠다. Authorization code는 한번만 쓸 수 있고 다시쓰려면 인증을 다시 받아야해서 아닐까? 댓글 아시는 분 plz...)
  2. Resource Server에서 Access Token을 발급한다.
  3. Client에서는 Access Token을 보고 이 사람은 user_id가 어떻고, 동의항목(scope)가 어떻고.. 이런 정보를 가지고 있는 사람이구나! 이 사람에게 허용을 해야겠군! 하며 동작한다.
profile
안녕 세계!

0개의 댓글