결국 크게 나누어 아래 두가지를 하고 싶어서 OAuth2.0(RFC 6749)를 사용합니다.

  • 인증 (Authentication)
    • 인증은 지금 접속한 client가 누구인지에 대한 내용입니다. web browser, mobile app, 심지어 device가 될 수도 있습니다.
  • 권한 부여 (Authorization)
    • client가 이용하려고 하는 resource(web server, DB, storage 등등)에 대한 권한(user, admin, operator등등)을 부여합니다.
  • protocol flow

+--------+ +---------------+ | |--(A)- Authorization Request ->| Resource | | | | Owner | | |<-(B)-- Authorization Grant ---| | | | +---------------+ | | | | +---------------+ | |--(C)-- Authorization Grant -->| Authorization | | Client | | Server | | |<-(D)----- Access Token -------| | | | +---------------+ | | | | +---------------+ | |--(E)----- Access Token ------>| Resource | | | | Server | | |<-(F)--- Protected Resource ---| | +--------+ +---------------+

authorization server와 resource server는 같은 서버일 수도 있습니다.

  1. end-user(resource owner)는 client에게 접근 권한 정보를 줍니다.
  2. OAuth(authorization server)는 server(authorization server)와 client간의 인증이 성공하면 권한에 대한 내용인 Access Token을 client에게 줍니다.
  3. client는 Access Token을 HTTP header에 포함하여 server(resource server)에 request 합니다.
  4. server(resource server)는 client의 request에 Access Token를 통해 권한을 확인하고 response합니다.

Access Token과 Refresh Token, authorization grant type등의 내용은 다음 글에서 자세히 다룰 예정입니다.


※ 참고하면 좋을 문헌

  • https://jungle.kim/2018/04/21/oauth/


'OAuth > OAuth 2.0' 카테고리의 다른 글

OAuth 2.0 이해  (0) 2018.07.23

+ Recent posts