Client 가 Resource Server 와 Authorization Server 를 사용하려면 사전 등록절차가 필요하다. 이것이 Register
🕹 서비스마다 등록하는 절차가 상이하지만 아래의 기본 3가지는 동일하다.
애플리케이션을 식별하는 ID
애플리케이션의 비밀번호
Authorization Server에서 인증흐름이 끝났을대 redirect 해줄 주소. 만약 redirect uri 와 다른 주소에서 요청이 들어온다면 무시한다.
🕹 이렇게 3가지 정보를 등록하면 Client 와 Resource Server 는 client ID, Client SECRET, Authorized Redirect URIs 정보를 가지게 된다.
Resource Owner: 사용자
Client: 내가만든 어플리케이션
Authorization Server: 기능 B를 지원하는 구글
#1 사용자가 기능 B를 사용하기위해 클라이언트에 접속한다.
#2 기능을 쓰기위해서는 인증서버를 거쳐야하는데 사용자의 동의가 필요하다.
#3 동의를 하게되면 인증서버로 주소를 전달한다.
#4 만약 로그인이 되어 있지않다면 로그인요청을 보내고 로그인 승인이 되면 client 에 정보 위임을 해도 되는지 허가해달라는 요청을 사용자에게 보낸다.
#5 사용자가 위임 허가 동의한다.
#6 인증서버는 #3에서 보낸 주소를 분석후 client_id 와 기능상세scope 와 redirect_url이 일치한다면 사용자에게 Authorization Code를 발급해준다.
#7 사용자는 건네받은 authorization code 를 클라이언트 측에 전달하고
#8 클라이언트는 사용자에게서 건네받은 authorization code를 다시 authorization server 측에 전달한다.
#9 건네받은 정보가 일치하는지 확인하는 작업
#10 일치한다면 ACCESS_TOKEN 발행