OAuth 2.0 - 승인

dongbin_Shin·2021년 9월 27일
0

OAuth 2.0

목록 보기
3/4
post-thumbnail

생활코딩 - OAuth 2.0에서 이 포스트의 내용을 영상으로 볼 수 있다.

Resource Server에 Client를 등록하면 양쪽 모두 Client ID, Client Secret, redirect url을 알게 된다. (Client는 승인 전 redirect url에 해당하는 페이지를 구현해놓아야 한다.)
승인을 받는 과정을 단계별로 알아볼 것이므로 차근차근 따라오면 된다.

Resource Owner의 승인

  1. Resource Owner는 Resource Server의 기능을 사용하기 위해 client에게 로그인을 요청한다.

  2. Client는 위와 같은 버튼을 보여준다. 각 버튼에는 다음과 같은 주소가 연결되어 있다.
    https://resource.server/?client_id={클라이언트 ID}&scope={사용하고자 하는 기능}&redirect_uri={리디렉션 uri}

  3. Resource Owner가 위 주소로 Resource Server에 접속하면, 로그인 여부에 따라 Resource Server가 Resource Owner에게 로그인을 요청한다.

  4. 로그인에 성공하면 Resource Server는 위 주소의 client_id 값이 등록되어 있는지 확인한다.

  5. client_id가 등록되어 있다면 redirect_uri도 같은지 확인한다. 다르면 작업을 끝낸다.

  6. Resource Server는 Resource Owner에게 "Client에게 이러이러한 권한을 줍니까?" 라고 동의를 구한다.

  7. 허용 받으면 Resource Server는 Resource Owner가 어떤 기능을 허용했는지 저장한다.

Resource Server의 승인

  1. Resource Server는 바로 accessToken을 발급하지 않고 임시 비밀번호인 authorization code를 발급한다.

  2. Resource Server는 response의 헤더에
    Location: https://client/callback?code={authorization code}를 넣고 전송해 client의 callback uri로 접속하게 한다.

  3. 2의 과정을 통해 client는 authorization code를 알게 된다.

  4. Client는 Resource Server에 아래와 같은 url로 request한다.
    https://resource.server/token?grant_type=authorization_code&code={authorization code}&redirect_uri={callback uri}&client_id={client_id}&client_secret={client_secret}

  5. Resource Server는 모든 정보가 일치하는지 확인한 후 일치한다면 accessToken을 발급한다.

accessToken을 발급하는 과정은 다음 포스트에서 다룰 예정이다.

profile
멋있는 백엔드 개발자

0개의 댓글