Untitled

  1. 모바일 앱은 사용자에게개인정보에 대한 허가를 요청한다. 직접적으로 요청하는 방법도 있지만 가장 흔히 접하는 경우는 authorization server 를 이용해서 간접적으로 요청하는 방법이다. 예로 네이버 소셜로그인 할 때, 네이버에서 제공하는 로그인 창이 나타난 걸 본 경험이 있을 것이다.
  2. 모바일 앱은 요청이 허가되었음을 확인한다. 사용자가 해당 리소스 사용에 대한 요청을 허가했다는 응답을 authorization grant 라고 하며, grant 하는 방법 여러가지이다. 표준에 명시적으로 정의된 4가지 방법(authorization code/implicit/resource owner password credentials/client credentials)과 extension grant type 으로 나뉜다.
  3. 모바일 앱은 authorization grant 결과를 바탕으로 authorization server 에 access token 을 요청한다. 이 때 현재 요청하는 모바일 앱이 정당한 oauth 이용자인지 인증하는 과정을 포함한다. (client id, client secret 등으로 검사)
  4. Authorization server 는 모바일 앱에 대한 인증을 수행하고, 모바일 앱이 제출한 authorization grant 결과가 유효한지 검사한다. 모두 다 유효하면 access 토큰을 발급한다.
  5. 모바일 앱은 access 을 제시함으로써 resource server 에 리소스 요청을 할 수 있다.
  6. Resource server 는 해당 토큰이 유효하다면, 요청을 처리한다.