반응형
OAuth2.0
웹, 앱 서비스에서 리소스 소유자에게 제한적으로 권한을 요구하여 리소스서버에 있는 리소스에 접근 하는 것.
OAuth 구성
- Resource Owner ( User )
- Authorization Server
- Resource Server
- Client ( Web, App )
Oauth 방식
- Authorization Code
- Implicit
- Resource Owner Password Credentials
- Client Credentials
GoogleAPI 사용전 리소스 권한 획득 과정 ( GoogleAuthorizationCodeFlow )
- client에서 Scope 설정
- client에서 Oauth 클라이언트 인증 ( 공개키/비밀키 )
- client에서 AuthorizationServer에 Token 요청
- client에서 AuthCode 수령
- AuthCode로 AccessToken 요청 ( AccessToken 요청시 AuthCode 수령한 redirect_uri 주소 입력 )
- AccessToken으로 Credential 생성 ( Credential : AccessToken, ExpireDate 등으로 구성 )
- GoogleAPI 요청 with Credential
서비스 계정
클라이언트가 유저의 데이터에 액세스를 인증서버에 요청하는 것과 달리 서비스 계정은 클라이언트가 서비스 계정에 데이터 액세스요청을 할 수 있게 한다. 즉, 클라이언트만의 계정이 생성되는 것이다. 클라이언트는 Google API console로부터 공개키/개인키를 다운받아 AccessToken을 AuthorizationSever로부터 받을 수 있다.
GoogleCloudPlatform
클라이언트의 엔드유저 권한획득
- 리소스 서버
- 프로젝트 생성 > GoogleAPI 서비스 가동 > Oauth ClientSecret 발급
- 클라이언트의 엔드유저 권한획득
- ClientSecret으로 인증 > 권한 취득 > GoolgeAPI를 사용하여 개인 데이터 접근
클라이언트의 서비스 계정 권한획득
- 리소스 서버
- 서비스 계정 생성 > ClientSecret 발급
- 클라이언트의 서비스계정 권한 획득
- ClientSecret으로 인증 > GoogleAPI를 사용하여 서비스 계정의 데이터 접근
반응형