Cómo funciona

- Un usuario abre su aplicación de Android y elige Sign in with Google.
- Su aplicación de Android usa el Credential Manager para solicitar Sign in with Google.
- En la pantalla de selección de cuenta, el usuario elige la cuenta de Google que prefiera.
- Google inicia la sesión del usuario localmente y se encarga de toda la autenticación.
- El usuario completa el inicio de sesión sin necesidad de ninguna interacción adicional.
- Google devuelve un
id_tokena su aplicación de Android. - Su aplicación de Android envía el
id_tokena su inquilino de Auth0 para validarlo. Auth0 valida elclient_iddelid_tokencomparándolo con elclient_idde la conexión social de Google configurada en su inquilino. - El servidor de Auth0 devuelve un
access_tokena su aplicación de Android.
Antes de comenzar
- Se haya configurado una conexión social de Google en su inquilino de Auth0.
- En la configuración Purpose, habilite la conexión para Authentication, Connected Accounts for Token Vault o ambas opciones. Para obtener más información, consulte Autenticación de usuarios vs. cuentas conectadas.
- Se haya agregado Sign in with Google a su aplicación de Android mediante Credential Manager de Android.
Configurar Sign in with Google para aplicaciones Android
- Crear credenciales en Google Cloud Console.
- Configurar los detalles de la aplicación en Auth0.
- Actualizar el código de la aplicación Android.
Crear credenciales en Google Cloud Console
-
Crea una credencial de OAuth 2.0 con el tipo establecido en
Android. Esto se denominaclient_id_native. -
Agrega el hash SHA1 de la aplicación nativa al cliente de Android del paso 1.
- Actualmente, Google solo admite SHA1.
-
Crea un cliente OAuth adicional para la web (
client_id_web).- En algunos casos, es posible que ya hayas configurado este elemento para tus conexiones sociales que admiten Sign in with Google basado en la web.
No puedes usar Google Credential Manager con el
client_id de Android; de lo contrario, se producirá un error. En el ID Token que devuelve Google, la parte autorizada (azp) se establece automáticamente en el ID de cliente de OAuth de Android, y la audiencia (aud) se establece en el ID de cliente de OAuth para la web.Al invocar Credentials Manager desde Android, la aplicación nativa debe usar client_id_web mediante .setServerClientId en el SDK de Credentials Manager. client_id_web corresponde a la credencial de OAuth 2.0 de aplicación web en Google Cloud Console y se configura en la conexión social de Google OAuth2. Para obtener más información, consulta la documentación de Google.Configurar Auth0
- Auth0 Dashboard
- Management API
Para actualizar la aplicación a través del Auth0 Dashboard, siga estos pasos:
- Vaya a Applications > Applications y elija su aplicación nativa de Android.
- En la pestaña Settings, expanda la sección Advanced Settings.
- Seleccione la pestaña Device Settings y active la opción Enable Sign in with Google (Android 4.4+) using Credentials Manager.
- Para aplicaciones nuevas: en la pestaña Device Settings, complete los campos de la sección Android, incluido App Package Name. Para obtener más información, consulte Enable Android App Links Support.
- Seleccione Save Changes.
Actualiza el código en la aplicación Android
googleCredential, el código de la aplicación nativa debe invocar la biblioteca de Google. Para más información, consulta la documentación de Credential Manager de Google.
Escenarios de autenticación adicionales
Federación empresarial
id_token, como se muestra en los ejemplos anteriores.
Para ello, decodifique el token de Google y pase el email proporcionado en el como login_hint. Esto evita que el usuario final tenga que volver a introducir su dirección de correo electrónico en el flujo web.
Consideraciones sobre MFA durante el intercambio de tokens
id_token de Google. En este escenario, el usuario final solo verá la pantalla de MFA.