목차
- Oauth 개념
- 각 개체들의 역할
- 개념 이해를 위한 용어 정리 (scope, contsent)
- 인가 작업 수행을 위한 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 유형의 흐름
(다음 게시글에서 자세하게 다룰 예정. 눈으로만 살펴보자)
- uthorization Code Grant
- Implicit Grant
- Resource Owner Credentials Grant
- Client Credentials Grant
- Refresh Token Grant
댓글