概要

すべてのスマートホーム アクションには、ユーザーを認証するための仕組みを組み込む必要があります。

認証を使用すると、ユーザーの Google アカウントと認証システム内のユーザー アカウントを関連付けることができます。これにより、フルフィルメントでスマートホーム インテントを受け取ったときにユーザーを識別できます。Google スマートホームは、認証コード フローを使用した OAuth のみに対応します。

OAuth 2.0 を実装すると、OAuth ベースのアプリ切り替えを設定できるようになります。アプリ切り替えを使うと、デベロッパーの認証システムに登録されているユーザーのアカウントを、そのユーザーの Google アカウントに簡単にリンクできます。

OAuth

スマートホームでは、認証コードフローを使用した OAuth を使用しなければなりません。そのため、認証エンドポイントとトークン交換エンドポイントの 2 つのエンドポイントを用意する必要があります。

ユーザーを認証すると、スマートホーム インテントがフルフィルメントに送信されたときに、ユーザーのサードパーティ OAuth 2.0 アクセス トークンが Authorization ヘッダーで送信されます。すべてのユーザーがアカウント リンクを実行する必要があります。これは、デバイス情報が、アカウント リンクを必要とする action.devices.SYNC インテントとともにアシスタントに送信されるためです。

スマートホーム アクションは、同じユーザー アカウントに接続している複数の Google ユーザーをサポートするように設計されています(ユーザーが家族の他のユーザーにアクセスを許可する場合など)。サービスが複数のユーザー接続をサポートできない場合は、アカウント リンク時にエラーが発生します。

OAuth 2.0 サーバーの設定方法については、OAuth 2.0 サーバーを実装するをご覧ください。

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

OAuth-based App Flip Linking (App Flip) allows your users to easily and quickly link their accounts in your authentication system to their Google accounts. If your app is installed on your user’s phone when they initiate the account linking process, they are seamlessly flipped to your app to obtain user authorization.

This approach provides a faster and easier linking process since the user does not have to re-enter their username and password to authenticate; instead, App Flip leverages the credentials from the user's account on your app. Once a user has linked their Google account with your app, they can take advantage of any integrations that you have developed.

You can set up App Flip for both iOS and Android apps.

This figure shows the steps for a user to link their Google account
            to your authentication system. The first screenshot shows how a user
            can select your app if their Google account is linked to your app.
            The second screenshot shows the confirmation for linking their
            Google account with your app. The third screenshot shows a
            successfully linked user account in the Google app.
Figure 1. Account linking on a user's phone with App Flip.

Requirements

To implement App Flip, you must fulfill the following requirements:

  • You must have an Android or iOS app.
  • You must own, manage and maintain an OAuth 2.0 server which supports the OAuth 2.0 authorization code flow.

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

アクションのアプリ切り替えを設定する手順については、OAuth ベースのアプリ切り替えをご覧ください。