OAuth 2.0

2021. 12. 26. 08:49Cloud Native

    목차
반응형

OAuth ?

  OAuth는 Open Authorization의 약자로서 접근에 대한 대행을 수행하는 "open standard" 입니다. 보통 Internet user들이 website나 application에 passowrd를 제공하지 않고서 자신의 정보에 대한 접근을 허가 하고자 할때 사용됩니다. 

  또한 서비스 개발 입장에서 OAuth는 제공하고자 하는 서비스에 대한 '인증' 작업을 직접 구현하지 않고 다른 잘 알려진 서비스의 인증 기능을 활용하고자 하는 기술입니다.  이 방식은 Amazon, Google, Facebook, MS 등 유수의 많은 IT 회사들이 user들이 그들의 정보를 3rd party application 혹은 website에 허용하도록 하기 위해 사용하고 있는 방식입니다. 

 

* 쉽게 얘기하자면 사용자 인증을 내가 아닌 잘 알려진 타 서비스의 방법을 위임(delegate)하여 사용한다는 것이다. 

 

OAuth 2.0 인증방식

     +--------+                               +---------------+
     |        |--(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 ---|               |
     +--------+                               +---------------+
  • Resource owner
    • resource에 대한 access를 허가하는 주체
    • resource owner가 사람인 경우 end-uer가 됨
  • resource server
    • 보호된 resource들을 유지하는 server
    • access token을 통해 resource를 요청할 시 이에 대응함
  • client
    • 보호된 resource에 대한 request를 resource owner 대신 만들어 보내는 application
  • authorization server
    • resource owner에 대한 인증 성공 후 access token을 client에게 발행하는 server

 

1. client가 resource owner에게 인증을 요청합니다. 

2. client는 인증 허가를 받습니다. 여기서 인증 허가는 credential로서 resource owner의 인증을 의미합니다.

3. client는 인증 허가를 가지고 인증 서버에 access token을 요청합니다. 

4. 인증 서버는 access token을 발급합니다.

5. client는 access token을 가지고 resource server의 resource를 요청합니다.

6. resource server는 resource를 제공합니다.

 

간단히 정리하면, 다음과 같습니다. 

 

1) client는 resource owner가 인증허가를 하도록 요청

2) client는 인증 허가를 가지고 인증서버에 access token을 요청

3) client는 access token으로 resource에 접근

 

반응형

'Cloud Native' 카테고리의 다른 글

서버호스팅, 웹호스팅  (0) 2022.01.08
PHP ? PHP 기본 문법  (0) 2022.01.04
SOAP and REST  (0) 2021.11.30
Cloud native  (0) 2021.11.07
Spring framework  (0) 2021.10.10