이 참조 페이지에서는 OAuth 기반 계정 연결 프로세스 중에 앱에서 사용하는 Google 제공 엔드포인트와 인터페이스를 설명합니다.
기본 요건 및 표준
이러한 Google 엔드포인트와 성공적으로 상호작용하려면 통합이 다음 표준을 준수해야 합니다.
- OAuth 2.0: RFC 6749를 준수합니다.
- JSON 웹 토큰 (JWT): RFC 7519를 준수합니다 (간소화된 연결 및 RISC용).
- 보안 이벤트 토큰: RFC 8417 (RISC용)을 준수합니다.
- HTTPS: 모든 요청은 보안 HTTPS 연결을 통해 이루어져야 합니다.
OAuth 리디렉션 URI
인증 및 동의가 완료된 후 서비스가 사용자의 브라우저를 리디렉션하는 엔드포인트입니다. YOUR_PROJECT_ID 경로 매개변수는 등록 중에 구성하는 ID입니다.
- URL:
https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID 샌드박스 URL:
https://oauth-redirect-sandbox.googleusercontent.com/r/YOUR_PROJECT_ID메서드:
GET(브라우저 리디렉션 사용)
요청 매개변수
사용자를 Google로 다시 리디렉션할 때는 URL에 매개변수를 추가해야 합니다. 사용된 OAuth 흐름에 따라 이러한 매개변수는 쿼리 문자열 (인증 코드 흐름) 또는 URL 프래그먼트 (암시적 흐름)로 형식이 지정됩니다.
| 매개변수 | 설명 |
|---|---|
code |
(승인 코드 흐름에 필요) 서비스에서 생성된 승인 코드입니다. |
state |
(필수) Google에서 원래 수신한 수정되지 않은 상태 값입니다. |
access_token |
(암시적 흐름에 필요) 서비스에서 생성된 장기 액세스 토큰입니다. |
token_type |
(암시적 흐름에 필요) bearer여야 합니다. |
오류 응답
OAuth 리디렉션 URI에 대한 요청이 잘못된 경우 HTTP 400 잘못된 요청 오류가 표시됩니다. 응답 본문에는 다음과 같은 구조의 JSON 객체가 포함됩니다.
| 필드 | 설명 |
|---|---|
sendPostBody |
JS가 POST를 사용하여 redirectUri로 리디렉션해야 하는지 여부를 결정합니다. 이 시나리오에서는 일반적으로 false입니다. |
errorMessage |
리디렉션을 완료할 수 없을 때 클라이언트에 표시할 오류 메시지입니다. 누락된 프래그먼트의 경우 "A URI fragment or query string must be set."입니다. |
OAuth 2.0 오류 응답
사용자가 동의를 거부하거나 서비스에 오류가 발생하면 서비스는 표준 OAuth 2.0 오류 매개변수 (예: error=access_denied)를 사용하여 사용자를 OAuth 리디렉션 URI로 다시 리디렉션해야 합니다. Google은 이러한 매개변수를 처리하고 사용자에게 적절한 오류 화면을 표시합니다.
RISC API (선택사항)
서비스에서 RISC 프로토콜을 사용하여 사용자가 플랫폼에서 계정 연결을 해제할 때 Google에 선제적으로 알리는 데 사용되어 두 플랫폼이 동기화된 상태를 유지합니다.
- URL:
https://risc.googleapis.com/v1/events:publish - 메서드:
POST - 인증: 적절한 권한이 있는 Google 서비스 계정 토큰이 필요합니다.
- Content-Type:
application/json
보안 이벤트 토큰 클레임
토큰 취소 이벤트를 Google에 알리는 데 사용하는 보안 이벤트 토큰은 다음 표의 요구사항을 준수해야 합니다.
| 소유권 주장 | 설명 |
|---|---|
iss |
발급기관 클레임: 호스팅하는 URL이며 등록 중에 Google과 공유됩니다. |
aud |
대상 클레임: JWT 수신자로 Google을 식별합니다. google_account_linking로 설정해야 합니다. |
jti |
JWT ID 클레임: 모든 보안 이벤트 토큰에 대해 생성하는 고유 ID입니다. |
iat |
발급 시간 클레임: 이 보안 이벤트 토큰이 생성된 시간을 나타내는 NumericDate 값입니다. |
toe |
이벤트 클레임 시간: 토큰이 취소된 시간을 나타내는 선택적 NumericDate 값입니다. |
exp |
만료 시간 클레임: 이 알림을 유발한 이벤트가 이미 발생했으므로 이 필드를 포함하지 마세요. |
events |
보안 이벤트 클레임: 이는 JSON 객체이며 다음 필드가 포함된 단일 토큰 취소 이벤트만 포함해야 합니다.
|
필드 유형 및 형식에 대한 자세한 내용은 JSON 웹 토큰 (JWT)을 참고하세요.
앱 전환 '뒤로 전환' 인터페이스
앱 플립의 경우 모바일 앱이 승인 코드 또는 액세스 토큰을 Google 앱에 반환해야 합니다.
Android (인텐트 결과)
인텐트를 사용하여 앱이 열립니다. 동의 후 완료되고 결과를 Google에 반환합니다. 자세한 내용은 Android 구현 가이드를 참고하세요.
- 작업:
com.google.android.gms.auth.CODE_AVAILABLE - 기타:
code,state,access_token,token_type
iOS (맞춤 URL 스키마 및 범용 링크)
앱이 맞춤 URL 스키마 또는 HTTPS 범용 링크를 사용하여 Google을 엽니다. 자세한 내용은 iOS 구현 가이드를 참고하세요.
- 형식:
<return_url>?code=AUTHORIZATION_CODE&state=STATE_STRING