概要

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 サーバーにアクセス トークンを発行します。

OAuth リンクの認証コードフローの詳細については、OAuth サーバーを実装するをご覧ください。

設計ガイドライン

このセクションでは、App Flip のアカウント リンクの同意画面の設計要件と推奨事項について説明します。Google がアプリを呼び出すと、アプリはユーザーに同意画面を表示します。

要件

  1. ユーザーのアカウントが Google Home や Google アシスタントなどの特定の Google サービスではなく、Google にリンクされることを伝える必要があります。

推奨事項

次のことをおすすめします。

  1. Google のプライバシー ポリシーを表示します。同意画面に Google のプライバシー ポリシーへのリンクを含めます。

  2. 共有されるデータ。明確で簡潔な表現を使用して、Google がユーザーのどのデータを必要としているか、またその理由をユーザーに伝えます。

  3. 行動を促す明確なフレーズがある。同意画面に「同意してリンク」などの明確な行動を促すフレーズを記載します。これは、アカウントをリンクするために Google と共有する必要があるデータをユーザーが理解する必要があるためです。

  4. 拒否またはキャンセルできること。リンクしないことを選択した場合に、ユーザーが戻る、拒否する、キャンセルする方法を提供します。

  5. リンクを解除できること。ユーザーがリンクを解除できる仕組み(プラットフォームのアカウント設定への URL など)を提供します。または、ユーザーがリンクされたアカウントを管理できる Google アカウントへのリンクを含めることもできます。

  6. ユーザー アカウントを変更する機能。ユーザーがアカウントを切り替える方法を提案します。これは、ユーザーが複数のアカウントを持っている場合に特に便利です。

    • ユーザーがアカウントを切り替えるために同意画面を閉じる必要がある場合は、回復可能なエラーを Google に送信して、ユーザーが OAuth リンクインプリシット フローを使用して目的のアカウントにログインできるようにします。
  7. ロゴを含めます。同意画面に会社のロゴを表示します。スタイル ガイドラインに沿ってロゴを配置します。Google のロゴも表示する場合は、ロゴと商標をご覧ください。

この図は、ユーザーの同意画面を設計する際に従うべき個々の要件と推奨事項を説明する吹き出しが付いた同意画面の例を示しています。
図 2. アカウント リンクの同意画面のデザイン ガイドライン。

OAuth ベースのアプリ切り替えを設定する

以下のセクションでは、OAuth ベースのアプリ切り替えの前提条件と、アプリ切り替えプロジェクトを Actions Console で設定する方法について説明します。

アクションを作成して OAuth 2.0 サーバーを設定する

アプリ切り替えを設定する前に、以下を行う必要があります。

Actions Console でアプリ切り替えを設定する

次のセクションでは、Actions Console でアプリ切り替えを構成する方法を説明します。

  1. 上部のナビゲーションにある [Develop](開発)をクリックし、左側のナビゲーションで [Account linking](アカウントのリンク)をクリックします。
  2. [アカウントのリンク] の横にあるスイッチをオンにします。
  3. [Account creation](アカウントの作成)で、[No, I only want to allow account creation on my website](いいえ、自分のウェブサイトでのアカウントの作成のみを許可します)を選択します。
  4. [次へ] をクリックします。
  5. [Linking type](リンクタイプ)で、[OAuth] と [Authorization code](認証コード)を選択します。
  6. [次へ] をクリックします。
  7. [OAuth Client information] のすべてのフィールドを入力します。(アプリ切り替えがサポートされていない場合は、通常の OAuth がフォールバックとして使用されます)。
  8. [次へ] をクリックします。
  9. [Use your app for account linking (optional)] で、[Enable for iOS](iOS で有効にする)をオンにします。
  10. [Universal Link](ユニバーサル リンク)フィールドに入力します。ユニバーサル リンクについて詳しくは、コンテンツへのアプリとウェブサイトのリンクを許可する をご覧ください。
  11. クライアントを設定したい場合は、スコープを追加し、[Configure your client (optional)](クライアントを構成する(省略可))で [Add scope](スコープを追加)をクリックします。構成しない場合は、[次へ] をクリックします。
  12. [Testing instructions](テスト手順)で、プレースホルダとして「test」(または任意の文字列)を入力します。(テスト アカウントでこのフィールドを入力する必要があるのは、実際にアクションを提出して公開する場合のみです)。
  13. [保存] をクリックします。

次のセクションでは、iOS アプリまたは Android アプリにアプリ切り替えを実装します。

ネイティブ アプリにアプリ切り替えを実装する

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

デバイスでアプリ切り替えをテストする

アクションを作成し、コンソールとアプリでアプリ切り替えを設定したら、モバイル デバイスでアプリ切り替えをテストできます。Google アシスタント アプリを使ってアプリ切り替えをテストすることもできます。

アシスタント アプリからアプリ切り替えをテストする手順は次のとおりです。

  1. Actions Console に移動して、プロジェクトを選択します。
  2. 上部のナビゲーションで [Test](テスト)をクリックします。
  3. アシスタント アプリからアカウントのリンクフローをトリガーします。
    1. Google アシスタント アプリを起動します。
    2. [設定] をクリックします。
    3. [アシスタント] タブで、[スマートホーム] をクリックします。
    4. [追加(+)] をクリックします。
    5. プロバイダのリストからアクションを選択します。リストの先頭に「[test]」が付きます。リストから [test] アクションを選択する場合、アプリを開く必要があります。
    6. アプリが起動したことを確認し、承認フローのテストを開始します。