仕組み

- ユーザーが Android アプリケーションを開き、Google でのログインを選択します。
- Android アプリケーションは Credential Manager を使用して、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 設定では、Authentication、Connected Accounts for Token Vault、またはその両方で接続を有効にします。詳細については、User authentication vs Connected Accounts を参照してください。
- Android’s Credential Manager を使用して、Android アプリケーションに Google でログイン が追加されていること。
Android アプリケーション向けの Google でログイン の設定
- Google Cloud Console で認証情報を作成する。
- Auth0 でアプリケーションの詳細を設定する。
- Android アプリケーションのコードを更新する。
Google Cloud Console で認証情報を作成する
-
タイプを
Androidに設定した OAuth 2.0 認証情報を作成します。これをclient_id_nativeと呼びます。 -
手順 1 で作成した Android クライアントに、ネイティブアプリケーションの SHA1 ハッシュを追加します。
- 現時点で、Google がサポートしているのは SHA1 のみです。
-
Web 用の追加の OAuth クライアント (
client_id_web) を作成します。- シナリオによっては、Web ベースの Google でログイン をサポートするソーシャル接続用に、この項目がすでに設定されている場合があります。
Google Credential Manager では Android の
client_id を使用できません。使用するとエラーが発生します。Google から返される IDトークン では、authorized party (azp) は自動的に Android OAuth クライアントIDに設定され、オーディエンス (aud) は Web OAuth クライアントIDに設定されます。Android から Credentials Manager を呼び出す場合、ネイティブアプリケーションでは Credentials Manager SDK の .setServerClientId を使用して client_id_web を指定する必要があります。client_id_web は Google Cloud Console の Web Application OAuth 2 Credential に対応しており、Google OAuth2 ソーシャル接続で設定されます。詳細については、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 画面のみです。