본문으로 바로가기

Oauth2.0 with Google

category IT Technical 2017. 8. 23. 09:28
    반응형

    OAuth2.0

    웹, 앱 서비스에서 리소스 소유자에게 제한적으로 권한을 요구하여 리소스서버에 있는 리소스에 접근 하는 것.

    OAuth 구성

    1. Resource Owner ( User )
    2. Authorization Server
    3. Resource Server
    4. Client ( Web, App )

    Oauth 방식

    1. Authorization Code
    2. Implicit
    3. Resource Owner Password Credentials
    4. Client Credentials

    GoogleAPI 사용전 리소스 권한 획득 과정 ( GoogleAuthorizationCodeFlow )

    1. client에서 Scope 설정
    2. client에서 Oauth 클라이언트 인증 ( 공개키/비밀키 )
    3. client에서 AuthorizationServer에 Token 요청
    4. client에서 AuthCode 수령
    5. AuthCode로 AccessToken 요청 ( AccessToken 요청시 AuthCode 수령한 redirect_uri 주소 입력 )
    6. AccessToken으로 Credential 생성 ( Credential : AccessToken, ExpireDate 등으로 구성 )
    7. GoogleAPI 요청 with Credential

    서비스 계정

    클라이언트가 유저의 데이터에 액세스를 인증서버에 요청하는 것과 달리 서비스 계정은 클라이언트가 서비스 계정에 데이터 액세스요청을 할 수 있게 한다. 즉, 클라이언트만의 계정이 생성되는 것이다. 클라이언트는 Google API console로부터 공개키/개인키를 다운받아 AccessToken을 AuthorizationSever로부터 받을 수 있다.

    GoogleCloudPlatform

    1. 클라이언트의 엔드유저 권한획득

      1. 리소스 서버
      • 프로젝트 생성 > GoogleAPI 서비스 가동 > Oauth ClientSecret 발급
      1. 클라이언트의 엔드유저 권한획득
      • ClientSecret으로 인증 > 권한 취득 > GoolgeAPI를 사용하여 개인 데이터 접근
    2. 클라이언트의 서비스 계정 권한획득

      1. 리소스 서버
      • 서비스 계정 생성 > ClientSecret 발급
      1. 클라이언트의 서비스계정 권한 획득
      • ClientSecret으로 인증 > GoogleAPI를 사용하여 서비스 계정의 데이터 접근

    반응형