仕組み

- ユーザーが Android アプリケーションを開き、Google でのログインを選択します。
- Android アプリケーションは Credential Manager を使用して、Sign In with Google をリクエストします。
- アカウント選択の画面で、ユーザーは使用する Google アカウントを選択します。
- Google はユーザーをローカルでサインインさせ、認証をすべて処理します。
- ユーザーは追加の操作を行うことなくサインインを完了します。
- Google は
id_tokenを Android アプリケーションに返します。 - Android アプリケーションは、検証のために
id_tokenを Auth0 テナントに送信します。Auth0 は、id_tokenのclient_idが、テナントで設定された Google のソーシャル接続のclient_idと一致することを検証します。 - Auth0 サーバーは
access_tokenを Android アプリケーションに返します。
始める前に
- Auth0 テナント内で Google ソーシャル接続 が設定されていること。
- Purpose 設定では、認証、Token Vault の接続済みアカウント、またはその両方に対して接続を有効にします。詳しくは、ユーザー認証と接続済みアカウント をご覧ください。
- Android の Credential Manager を使用して、Android アプリケーションに Sign In with Google が追加されていること。
Android アプリケーション向けの Sign In with Google の設定
- Google Cloud Console で資格情報を作成します。
- Auth0 でアプリケーションの詳細を設定します。
- Android アプリケーションのコードを更新します。
Google Cloud Console で資格情報を作成する
-
種類を
Androidに設定した OAuth 2.0 資格情報を作成します。これをclient_id_nativeと呼びます。 -
手順 1 の Android Client に、ネイティブ アプリケーションの SHA1 ハッシュを追加します。
- 現在、Google がサポートしているのは SHA1 のみです。
-
Web 用の OAuth クライアント (
client_id_web) を追加で作成します。- 状況によっては、Web ベースの Sign in with Google をサポートする Social 接続用に、この項目がすでに設定済みの場合があります。
Google Credential Manager で Android の
client_id を使用すると、エラーが発生するため使用できません。Google から返される ID トークンでは、authorized party (azp) は自動的に Android OAuth Client ID に設定され、audience (aud) は Web OAuth Client ID に設定されます。Android から Credentials Manager を呼び出す場合、ネイティブ アプリケーションでは Credentials Manager SDK の .setServerClientId を使用して client_id_web を指定する必要があります。client_id_web は Google Cloud Console の Web Application OAuth 2 Credential に対応しており、Google OAuth2 の Social 接続で設定されます。詳しくは、Google のドキュメントを参照してください。Auth0 を設定する
- Auth0 Dashboard
- Management API
Auth0 Dashboard からアプリケーションを更新するには、次の手順に従います。
- Applications > Applications に移動し、対象のネイティブ Android アプリケーションを選択します。
- Settings タブで、Advanced Settings セクションを展開します。
- Device Settings タブを選択し、Enable Sign in with Google (Android 4.4+) using Credentials Manager 設定を有効化します。
- 新しいアプリケーションの場合: Device Settings タブで、App Package Name を含む Android セクションの各項目を入力します。詳細については、Enable Android App Links Support を参照してください。
- Save Changes を選択します。
Androidアプリケーションのコードを更新する
googleCredential を取得するには、ネイティブアプリケーションのコードから Google ライブラリを呼び出す必要があります。詳しくは、Google の Credential Manager ドキュメントを参照してください。
追加の認証シナリオ
エンタープライズ フェデレーション
id_token に依存するのではなく、ユーザーを Web ベースのフローにリダイレクトすることをおすすめします。
そのためには、Google の をデコードし、 に含まれる email を login_hint として渡します。これにより、エンドユーザーは Web フローでメールアドレスを再入力せずに済みます。
トークン交換時のMFAに関する考慮事項
id_token で利用可能な追加コンテキストを使って WebAuth を利用できます。このシナリオでは、エンドユーザーに表示されるのは MFA 画面のみです。