OAuth2.0은 인증을 위한 표준 프로토콜의 한 종류이다.
보안된 리소스에 액세스하기 위해 클라이언트에게 권한을 제공(Authorization)하는 프로세스를 단순화하는 프로토콜 중 한 방법이다.
Resource Owner: 액세스 중인 리소스의 유저이다. A유저의 구글 계정을 이용하여 App에 로그인 할 경우, Resource Owner는 A유저가된다.
Client: Resource Owner를 대신하여 보호된 리소스에 액세스하는 응용프로그램이다. 클라이언트 서버, 데스크탑, 모바일 또는 기타 장치에서 호스팅할 수 있다.
호스팅이란? 정보의 집약체인 서버의 전체 혹은 일부를 이용할 수 있도록 임대해 주는 서비스를 말한다
Resource server: client의 요청을 수락하고 응답할 수 있는 서버이다.
Authorization server: Resource server가 액세스 토큰(access token)
을 발급받는 서버이다. 클라이언트 및 리소스 소유자를 성공적으로 인증한 후 액세스 토큰(access token)을
발급하는 서버를 말한다.
Authorization grant: 클라이언트가 액세스 토큰을 얻을 때 사용하는 자격 증명의 유형이다.
Authorization code: 액세스 토큰을 발급하기 전에 필요한 code이다. client ID로 이 code를 받아온 후, client secret과 code를 이용해 액세스 토큰을 받아온다.
Access token: 보호된 리소스에 액세스하는 데 사용되는 credentials이다. Authorization code와 client secret을 이용해 받아온 이 액세스 토큰으로 이제 Resource server에 접근할 수 있다.
Scope: Scope는 토큰의 권한을 정의한다. 주어진 액세스 토큰을 사용하여 액세스할 수 있는 리소스 범위를 말한다.