본문 바로가기
로그인 기능 및 인증/2. Oauth

Oauth1. 개념과 용어정리

by 혀닙 2022. 3. 17.

목차

  1. Oauth 개념
  2. 각 개체들의 역할
  3. 개념 이해를 위한 용어 정리 (scope, contsent)
  4. 인가 작업 수행을 위한 5가지 grant 유형



#1 Oauth

  • API(Open API)로 제공되는 인가(authorization) 를 위한 산업 표준의 프로토콜
  • 서버 구성의 요소 > 즉 아키텍쳐라고 보면됨
  • 어플리케이션이나 웹사이트들이 다른 웹사이트로부터 사적 데이터에 접근할 수 있도록 하는 인가의 흐름(flow/process)을 제공
  • 고객 발자들의 사용 편의성에 집중



#2 Oauth 개념에서 각 개체들의 역할

- 사용자 (Resource owner)

  • 어플리케이션이 사용자 계정의 일정 부분에 접근하도록 허락하는 개개의 사용자들. (휴먼...)
  • 어플리케이션의 사용자 계정에 대한 접근권은 사용자가 수여한 인가의 "scope"로 제한됨

- 클라이언트 (client)

  • 사용자 계정에 접근을 시도하는 앱
  • 사용자 계정에 접근하기 위해서 허락이 필요하다
  • 예를 들어, 클라이언트 어플리케이션의 경우 특정한 자원에 접근하기 위한 접근(access)토큰을 얻기 위해 로그인 페이지를 사용자에게 보여준다.

- 인가 서버 (Authorization server)

  • 사용자를 승인하거나 요청을 거절하는 등의 유저의 자격을 증명(작은 규모에서는 API 서버에서 인가 기능을 제공하기도)
  • client는 접근(access) 토큰에 대한 code를 확인하고 교환하기 위해 인가 서버와 통신한다.

- 백엔드 서버( Resource server) - API

  • 보호되고 있는 자원들에 대한 접근을 하는서버
  • 접근 토큰을 가진 앱으로부터 인가된 요청을 처리한다.



#3 Oauth 개념을 이해하기 위한 용어 정리

3-1. Scope

어플리케이션이 클라이언트로 부터 요청하는 접근에 대한 수준을 구체화한다.
즉, 유저 정보에 대해서 어디까지 접근할 수 있는 지에 대한 범위를 알려준다.

3-2. Contsent (screen)

사용자에게 누가 그들의 데이터에 접근 요청을 하는 지, 그리고 어떤 종류의 데이터에 접근하기를 요청하는 지 알려준다.



#4 인가 작업을 수행하기 위한 5가지 grant 유형의 흐름

(다음 게시글에서 자세하게 다룰 예정. 눈으로만 살펴보자)

  1. uthorization Code Grant
  2. Implicit Grant
  3. Resource Owner Credentials Grant
  4. Client Credentials Grant
  5. Refresh Token Grant



댓글