OAuth 2.0 이란?
다양한 플랫폼의 특정한 사용자 데이터에 접근하기 위해 제3자 클라이언트(우리의 서비스)가 사용자의 접근 권한을 위임(Delegated Authorization)받을 수 있는 표준 프로토콜.
쇼핑몰 사이트, 메신저 등 다양한 사이트에서 특정 플랫폼의 회원 정보를 통해 별도 회원가입을 하지 않고 구글, 카카오, 네이버 등 유명 플랫폼 아이디로 로그인을 한다거나 내가(혹은 누군가)만든 서비스에서 구글의 메일을 확인 하는 등의 기능을 사용해본 적이 있을 것이다. 이 때 서비스와 특정 플랫폼의 상호 권한 인증을 하기 위한 것이 OAuth다.
OAuth 2.0 Protocol Flow
OAuth 2.0의 주체
총 3가지의 주체가 존재한다.
1) Resource Owner
- 사용자를 의미한다.
2) Client
- 내가(혹은 다른)만든 서비스
3) Authrorization Server / Resource Server
- 플랫폼(Google, Naver, Kakao 등...)
내가 만든 서비스의 입장에서 봤을 때 Resource Owner 또한 Client로 볼 수 있지만 플랫폼 서버와 함께 3자 입장에서 바라본다면 Client는 내가 만든 서비스가 된다. 어떻게 보면 플랫폼 서버나 Client 입장에서도 Resource Owner를 Client로 볼 수 있을 것 같은데 아니라고 하니 혼동하지 말자...
OAuth 2.0 등록
OAuth를 등록하기 위해선 Client를 Resource Server에 등록해야 한다. 자세한 설명은 하단 사진 참조.