🚩 OAuth
✅ OAuth란
Google, 카카오 등의 외부 소셜 계정을 기반으로 간편히 회원가입 및 로그인할 수 있는 기능을 다양한 웹 서비스에서 볼 수 있다
이 때 사용되는 프로토콜이 OAuth이다
Open Authorization
-
인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다
ex) Google 로그인 시, API를 통해 연동된 계정의 Google Calendar 정보를 가져와 보여줄 수 있다
⏹ OAuth와 로그인
OAuth와 로그인의 차이
ex) 사원증을 이용해 출입할 수 있는 회사
- 회사 사원이 건물에 출입하는 것이 로그인
- 외부 손님이 방문증을 수령한 후 회사에 출입하는 것이 OAuth
즉, OAuth는 사용자의 인증을 제공하는 표준으로 이를 활용하여 로그인 기능을 간편하게 구성할 수 있는 것이다
- 웹 서비스 제공자는 아이디, 비밀번호 로그인을 구현할 필요가 없게 되고
- 웹 서비스 사용자는 로그인 시 아이디, 비밀번호를 입력할 필요가 없다
🚩 OAuth 인증
✅ OAuth 구성(관련) 요소
1. Resource Owner
- 웹 서비스를 이용하려는 유저, 자원(개인정보)을 소유하는 자, 사용자 (User)
- 현재 소셜 로그인을 사용하려는 유저
- Resource는 해당 유저의 개인정보
2. Client
- Resource Owner 대신 Resource에 접근하는 애플리케이션
- OAuth 인증을 사용해 Resource Server의 기능을 사용하려는 애플리케이션이나 웹 서비스
- Client가 Resource server에게 필요한 자원을 요청하고 응답하는 관계
3. Authorization Server
- 권한을 부여(인증에 사용할 아이템을 제공)해주는 서버
- Client(혹은 사용자)를 인증한 후, Access Token을 발급해주는 서버
- 사용자는 -> Authorization Server로 ID, PW를 넘겨 Authorization Code를 발급 받고
- Client -> Authorization Server로 Authorization Code을 넘겨 Token을 받급 받는다
4. Resource Server
- 사용자의 개인정보를 가지고 있는 애플리케이션 (Google, Facebook, Kakao 등) 회사 서버
- Client는 Token을 Resource Server로 넘겨 개인정보를 응답 받을 수 있다
5. Authorization Code
- Access Token을 발급받기 위해 필요한 코드
6. Access Token
- 자원에 대한 접근 권한을 Resource Owner가 인가하였음을 나타내는 자격증명
7. Refresh Token
- Client는 Authorization Server로 부터 Access token과 Refresh token을 함께 부여 받는다
- Access token은 보안상 만료기간이 짧아 만료되면 사용자는 로그인을 다시 시도해야 한다
- Refresh token은 기존 Access token이 만료될 때 Access token을 재발급 받는다
8. Scope
- 전달받은 Access Toekn으로 접근 가능한 Resource의 범위를 정의한다
✅ OAuth 인증 과정
👏 Reference
[WEB] 📚 OAuth 2.0 개념 정리 (그림으로 이해하기 쉽게)
OAuth와 춤을
[OAuth 2.0] OAuth란?
[Security] OAuth 2.0란? (개념 + 인증방식)
PAYCO 개발자센터