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 가이드 문서는 아래와 같다.
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 |