OAuth ベースのアプリ切り替えによる Google アカウントのリンク

OAuth ベースのアプリ切り替えリンク(アプリ切り替え)を使用すると、デベロッパーの認証システムに登録されているユーザーのアカウントを、そのユーザーの Google アカウントに簡単にリンクできます。 ユーザーのスマートフォンに対象のアプリがインストールされている場合、ユーザーがアカウントへの関連付けを開始すると、そのアプリにシームレスに切り替わってユーザーの認可を取得します。

この方法では、ユーザーが認証用のユーザー名とパスワードを再入力する必要がないため、アカウントへの関連付けが迅速に行われます。アプリ切り替えでは、アプリのユーザー アカウントの認証情報が使用されます。ユーザーが Google アカウントをアプリにリンクすると、デベロッパーが開発した統合機能を利用できるようになります。

iOS アプリと Android アプリの両方でアプリ切り替えを設定できます。

この図は、ユーザーが自身の Google アカウントをデベロッパーの認証システムにリンクする手順を示しています。最初のスクリーンショットは、ユーザーの Google アカウントがアプリにリンクされている場合にユーザーがアプリをどのように選択できるかを示します。2 番目のスクリーンショットは、ユーザーの Google アカウントをアプリにリンクするための確認画面を示します。3 番目のスクリーンショットは、Google アプリでユーザー アカウントが正常にリンクされたことを示します。
図 1.ユーザーのスマートフォンでのアプリ切り替えによるアカウント リンク。

要件

アプリ切り替えを実装するには、次の要件を満たす必要があります。

  • Android アプリまたは iOS アプリが必要です。
  • OAuth 2.0 認可コードフローをサポートする OAuth 2.0 サーバーを所有、管理、維持している必要があります。

OAuth ベースのアプリ切り替えフロー

次のシーケンス図は、アプリ切り替えにおけるユーザー、Google アプリ、デベロッパーのアプリ、デベロッパーの認可サーバー間のインタラクションの詳細を示しています。

ユーザー Google アプリ デベロッパーのアプリ Google サーバー デベロッパーの認可 サーバー 1. リンクを開始 2. デベロッパーのアプリへのディープリンク 3. 同意画面を表示 4. ユーザーが同意を付与 5. 認証コードを取得 6. authorization_code 7. Google アプリに戻る 8. Google サーバーにコードを渡す 9. トークン交換(POST) 10. アクセス トークン、更新トークン 11. ユーザー トークンを保存 12. ユーザー リソースにアクセス
図 2.アプリ切り替えフローのイベントのシーケンス。 認証コードが指定されている場合、トークンの交換は (ブラウザベースの OAuth リンクフローと同様に)サーバー間で行われます。

役割と責任

次の表に、アプリ切り替えフローにおけるアクターの役割と責任を示します。

アクター / コンポーネント GAL ロール 責任
Google アプリ / サーバー OAuth クライアント アカウントへの関連付け処理を開始し、モバイルアプリへのディープリンクをトリガーして、認証コードをトークンと交換し、サービス API にアクセスするために安全に保存します。
デベロッパーのアプリ 認可エージェント ユーザーを認証し(通常は既存のアプリの認証情報を使用)、 同意を取得して、サーバーから認証コードを取得します。
デベロッパーの認可サーバー 認可サーバー 認可コードと更新トークンを検証し、Google サーバーにアクセス トークンを発行します。

Design guidelines

This section describes the design requirements and recommendations for the App Flip account linking consent screen. After Google calls your app, your app displays the consent screen to the user.

Requirements

  1. You must communicate that the user’s account is being linked to Google, not to a specific Google product, such as Google Home or Google Assistant.

Recommendations

We recommend that you do the following:

  1. Display Google's Privacy Policy. Include a link to Google’s Privacy Policy on the consent screen.

  2. Data to be shared. Use clear and concise language to tell the user what data of theirs Google requires and why.

  3. Clear call-to-action. State a clear call-to-action on your consent screen, such as “Agree and link.” This is because users need to understand what data they're required to share with Google to link their accounts.

  4. Ability to deny or cancel. Provide a way for users to go back, deny, or cancel, if they choose not to link.

  5. Ability to unlink. Offer a mechanism for users to unlink, such as a URL to their account settings on your platform. Alternatively, you can include a link to Google Account where users can manage their linked account.

  6. Ability to change user account. Suggest a method for users to switch their account(s). This is especially beneficial if users tend to have multiple accounts.

    • If a user must close the consent screen to switch accounts, send a recoverable error to Google so the user can sign in to the desired account with OAuth linking and the implicit flow.
  7. Include your logo. Display your company logo on the consent screen. Use your style guidelines to place your logo. If you wish to also display Google's logo, see Logos and trademarks.

This figure shows an example consent screen with call-outs to the
            individual requirements and recommendations to be followed when
            you design a user consent screen.
Figure 2. Account linking consent screen design guidelines.

アプリにアプリ切り替えを実装する

アプリ切り替えを実装するには、Google からのディープリンクを許可するようにアプリのユーザー認証コードを変更する必要があります。

Android アプリでアプリ切り替えをサポートするには、 Android 実装ガイドの手順に沿って操作してください。

iOS アプリでアプリ切り替えをサポートするには、 iOS 実装ガイドの手順に沿って操作してください。

アプリ切り替えをテストする

検証済みの本番環境アプリと動作する OAuth 2.0 サーバーが利用可能になる前に、サンプルアプリとテストアプリを使用してアプリ切り替えをシミュレートできます。

アプリ切り替え中、Google アプリが最初にアプリを開き、アプリが OAuth 2.0 サーバーに認証コードのレスポンスをリクエストします。最後のステップで、レスポンスが Google アプリに返されます。

前提条件

Google アプリをシミュレートしてアプリを起動するインテントをトリガーするには、 Android と iOS用のアプリ切り替えテストツールをダウンロードしてインストールします。

アプリをシミュレートして OAuth 2.0 レスポンス タイプを選択するには、 AndroidiOS 用アプリ切り替えサンプルをダウンロードしてインストールします。

テスト手順

  1. アプリ切り替えテストツールを開きます。
  2. [Try Flip!] を押して、アプリ切り替えサンプルアプリを起動します。
  3. サンプルアプリのラジオボタンからレスポンスを選択します。
  4. [Send] を押して、シミュレートされた OAuth 2.0 レスポンスをテストツールに返します。
  5. テストツールのログメッセージで、auth_code またはエラーの詳細を確認します。

本番環境でのテスト

登録と OAuth 2.0 サーバーの実装が完了したら、本番環境でアプリ切り替えをテストできます。

自動テストには、単一の Google アカウントと タスク固有のメールアドレス を使用することをおすすめします。

Google アカウントの所有者としてログインすると、 [リンク済みアカウント]でアカウントのリンク状態を確認できます。ここから、繰り返しテストの間にアカウントのリンクを解除することもできます。

必要に応じて、 RISC を実装して、 プログラムでリンクを解除し、変更を Google に通知することもできます。