2021/개발

OAuth 2.0

mjin.park 2021. 10. 10. 00:04

OAuth란,

OAuth는 인터넷 사용자등리 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로 사용되는, 접근 위임을 위한 개방형 표준이다.

각 애플리케이션마다 다른 인증방식을 표준화한 것으로 OAuth 인증을 공유하는 애플리케이션끼리는 별도의 인증이 필요없다.

OAuth를 사용하면 특정 서비스에서 제공하는 서비스의 일부 기능을 사용할 수 있다.

OAuth 2.0

OAuth2.0의 일반적인 요소는 Resource Owner, Client, Authorization Server, Resource Server로 구성된다.

구분 설명
Resource Owner Client가 제공하는 서비스를 이용하려는 사용자
Client OAuth 2.0을 사용해 서드파티 로그인 기능을 구현할 애플리케이션 서버
Authorization Server 권한을 부여해주는 서버
사용자는 이 서버로 ID, PW를 넘겨 Authorization Code를 발급받을 수 있다.
Client는 이 서버로 Authorization Code를 넘겨 Token을 발급받을 수 있다.
Resource Server 사용자의 개인정보를 가지고 있는 애플리케이션 서버
Client는 Token을 이 서버로 넘겨 개인정보를 응답받을 수 있다.

Kakao Developer에서 제공하는 OAuth 2.0 가이드 문서는 아래와 같다.

출처: Kakao Developer

2번째 단계에서 전달받은 토큰은 액세스 토큰과 리프레시 토큰으로 2가지가 포함된다.

  • 액세스 토큰은 사용자를 인증하고 카카오 API 호출 권한을 부여
  • 리프레시 토큰은 사용자가 매번 카카오계정 정보를 입력하거나 카카오톡으로 로그인하지 않고도 액세스 토큰을 발급받을 수 있음
실제로 카카오 로그인 API를 이용해서 구현하는 예제는 차후에 업데이트하도록 하겠습니다.

출처

1. https://ko.wikipedia.org/wiki/OAuth

2. https://hwannny.tistory.com/92

3. https://developers.kakao.com/docs/latest/ko/kakaologin/common

반응형

'2021 > 개발' 카테고리의 다른 글

WebFlux Log Tracing  (0) 2021.12.04
SSO  (0) 2021.10.10
Spring Batch - 기본 프로젝트 만들기  (0) 2021.05.01
ELK - Elasticsearch 설치  (0) 2021.04.27
Spring Boot - An illegal reflective access operation has occurred  (0) 2021.04.24