このリファレンス ページでは、OAuth ベースのアカウント リンク プロセス中にアプリが使用する、Google が提供するエンドポイントとインターフェースについて説明します。
前提条件と基準
これらの Google エンドポイントと正常にやり取りするには、統合が次の標準に準拠している必要があります。
- OAuth 2.0: RFC 6749 に準拠しています。
- JSON Web Token(JWT): RFC 7519 に準拠(Streamlined Linking と 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 から最初に受け取った変更されていない state 値。 |
access_token |
(暗黙的フローで必須)サービスによって生成された有効期間の長いアクセス トークン。 |
token_type |
(暗黙的フローで必須)bearer である必要があります。 |
エラー レスポンス
OAuth リダイレクト URI へのリクエストの形式が正しくない場合は、HTTP 400 Bad Request エラーが返されます。レスポンスの本文には、次の構造の 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 に通知するために使用する Security Event Token は、次の表の要件に準拠している必要があります。
| 申し立て | 説明 |
|---|---|
iss |
発行者クレーム: 登録時に Google と共有される、お客様がホストする URL です。 |
aud |
オーディエンス クレーム: JWT の受信者として Google を識別します。google_account_linking に設定する必要があります。 |
jti |
JWT ID クレーム: セキュリティ イベント トークンごとに生成する一意の ID です。 |
iat |
発行日時クレーム: これは、このセキュリティ イベント トークンが作成された時刻を表す NumericDate 値です。 |
toe |
イベント クレームの時刻: トークンが取り消された時刻を表す 省略可能な NumericDate 値です。 |
exp |
有効期限のクレーム: この通知の原因となったイベントはすでに発生しているため、このフィールドは含めないでください。 |
events |
セキュリティ イベント クレーム: これは JSON オブジェクトであり、次のフィールドを含むトークン取り消しイベントを 1 つだけ含める必要があります。
|
フィールドのタイプと形式の詳細については、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