본문 바로가기
Web/backend

OAuth 2.0

by yongmin.Lee 2022. 3. 16.

OAuth 2.0?

  • OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다
  • 사용자가 가입된 서비스의 API에 접근하기 위해서는 사용자로부터 권한을 위임 받아야 합니다. 이 때 사용자의 패스워드 없이도 권한을 위임 받을 수 있는 방법
  • 보통 Resource Server는 Access Token을 발급할 때 Refresh Token을 함께 발급. Client는 두 Token을 모두 저장해두고, Resource Server의 API를 호출할 때는 Access Token을 사용. Access Token이 만료되어 401 에러가 발생하면, Client는 보관 중이던 Refresh Token을 보내 새로운 Access Token을 발급받게한다.

 

 

OAuth 2.0 요소

Client OAuth 2.0을 사용해 Resource Server의 서드파티 기능을 구현할 애플리케이션.
Recource Owner 서드파티 애플리케이션 (Google, Facebook, Kakao 등)에 이미 개인정보를 저장(회원가입)하고 있으며 Client가 제공하는 서비스를 이용하려는 사용자.
Resource Server 사용자의 개인정보를 가지고있는 애플리케이션 (Google, Facebook, Kakao 등) 서버다.  
Client는 Token을 이 서버로 넘겨 개인정보를 응답 받을 수 있다.
Authorization Server 권한을 부여(인증에 사용할 아이템을 제공주는)해주는 서버다.
사용자는 이 서버로 ID, PW를 넘겨 Authorization Code를 발급 받을 수 있다.
Client는 이 서버로 Authorization Code을 넘겨 Token을 받급 받을 수 있다.

 

OAuth 2.0 flow

출처: PAYCO 개발자 센터

 

 

참고자료

https://charming-kyu.tistory.com/36

https://hwannny.tistory.com/92

'Web > backend' 카테고리의 다른 글

Node.js event-driven  (0) 2020.11.08
쿠키, 세션, 캐시  (0) 2020.11.07
HTTP vs HTTPS  (0) 2020.11.07
MVC 패턴  (0) 2020.10.30
express (2) : 요청과 응답, 쿠키와 세션, REST API와 라우팅  (0) 2020.10.24