OAuth

HARIBO·2021년 11월 24일
0

OAuth란?

  • 인터넷 사용자들이 비밀번호를 제공하지 않고, 다른 웹사이트(구글, 페이스북 등) 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있다. 접근 위임을 위한 개방형 표준이다
  • OAuth에서 사용되는 토큰은 권한 확인을 위해 사용된다

관련 용어

  • resource owner : 자원에 관한 접근 권한을 부여할 수 있다. (client를 사용하는 사용자. 사람인 경우, 'end-user'라고 한다)
  • resource server : access token을 이용한 요청에 보호된 자원을 제공한다.
    (ex https://api.github.com/user)
  • client : resource owner를 대신해, 보호된 자원에 접근 권한을 요청하는 애플리케이션
  • authorization server : resource owner에게 접근 권한을 확인받고, client에게 access token을 발행한다. resource server와 동일한 서버일 수 있다.
    (ex https://github.com/login/oauth/authorize, https://github.com/login/oauth/access_token)

추상적인 흐름

  • (a) : 위의 그림은 resource owner에게 직접적으로 권한 요청을 하지만, authorization server에 간접적으로 권한 요청을 하는게 권장된다.

  • (b) : authorization server는 클라이언트의 권한 부여(authorization grant)를 확인하고 access token을 발행한다. (관련 용어를 보면, 확인하는 과정에서 resource owner에게 유효성 검사 요청을 하는 것 같다. 유효하면, resource owner에게 받은 토큰 발행)

  • (c) : 클라이언트는 access token을 사용해 보호된 자원을 요청한다. resource server는 access token이 유효하면 자원을 제공한다.

    출처
    https://datatracker.ietf.org/doc/html/rfc6749#section-4.1
    https://ko.wikipedia.org/wiki/OAuth

0개의 댓글