OAuth2.0 이란 Open Authentication, Authorization의 약자로 인증/인가에 대한 표준프로토콜이다.
흔히 웹브라우저를 통해서 쇼핑몰 사이트, 이벤트 사이트 등을 접속하여 어떤 작업을 하려고 하면 인증에 대한 요구에 직면하게 되고
요즘 sns를 통해서 인증을 대체하기도 한다.
이미 기기에서 로그인을 한 상태라면 위의 그림에서 보이는 "xx로 로그인" 버튼 클릭만으로 인증을 받을 수 있다.
저런걸 OAuth2.0라고 말하는건 아니다. 저건 단순히 특정 사이트에서 네이버, 페이스북, 구글 등의 Open API를 사용 한 것이고
대부분의 Open API 제공 서비스는 OAuth2.0 형태로 인증서버와 리소스 서버를 따로 구성해서 제공할 것이다.
만약 네이버, 페이스북 등과 같이 api를 제공하는 서버를 구축하고, 인증/인가에 대한 기능을 OAuth2.0으로 구축한다면
각 방식에 대해서 장단점을 파악해야 할 것이다. 아래는 API key 방식, OAuth2.0 방식에 대한 장단점을 기술한다.
01. API Key
02. OAuth2.0
02-1 프로토콜 구현
1. app(service)가 사용자에게 인증요청
2. 사용자가 app(service)에게 인증정보(아이디/password)를 입력
3. app(service)는 인증서버에 인증정보 전달
4. 인증서버는 access token 부여
5. app(service)는 리소스서버에 access token 전달
6. 리소스서버는 보호된 리소스를 app(service)에 전달
쇼핑몰사이트가 OpenAPI를 사용한다고 가정해보자.
app(service)는 쇼핑몰 사이트가 될 것이다.
인증서버는 OAuth2.0 프로토콜을 구현한 OpenAPI 제공 서버이고 인증 기능을 담당한다.
리소스서버는 사용자에 대한 정보를 가지고 있는 주체가 될 것이며, 인증서버와 같은 곳에 위치할 것이다.(예를들어 네이버 서버에 인증서버와 리소스서버가 있다)
02-2 OAuth2.0
참고: https://www.sauru.so/blog/basic-of-oauth2-and-jwt/
'개발 이야기 > Etc' 카테고리의 다른 글
2019 Log (0) | 2020.01.03 |
---|---|
VSCode 확장 추천!!! (0) | 2019.11.27 |
Elastic{ON} 서울 투어 2/22 (0) | 2019.02.22 |
2018 Log (0) | 2018.12.30 |
[독서]애자일 & 스크럼 프로젝트 관리 (0) | 2018.10.03 |