Fonctionnement
Cette fonctionnalité utilise le Credential Manager d’Android pour faciliter Sign in with Google dans votre application Android protégée par Auth0. Les étapes ci-dessous illustrent le flux général suivi par l’utilisateur pour Sign in with Google.
- L’utilisateur ouvre votre application Android et choisit de se connecter avec Google.
- Votre application Android utilise le Credential Manager pour demander Sign in with Google.
- À l’étape de sélection du compte, l’utilisateur choisit le compte Google de son choix.
- Google connecte l’utilisateur localement et gère toute l’authentication.
- L’utilisateur termine la connexion sans aucune interaction supplémentaire.
- Google renvoie un
id_tokenà votre application Android. - Votre application Android envoie le
id_tokenà votre tenant Auth0 pour validation. Auth0 valide leclient_idduid_tokenpar rapport auclient_idde la connexion sociale Google configurée dans votre tenant. - Le serveur Auth0 renvoie un
access_tokenà votre application Android.
Avant de commencer
Avant de commencer à configurer Sign in with Google, assurez-vous que les conditions suivantes sont remplies :- Une connexion sociale Google a été configurée dans votre tenant Auth0.
- Pour le paramètre Purpose, activez la connexion pour l’authentification, les comptes connectés pour Token Vault, ou les deux. Pour en savoir plus, consultez Authentification de l’utilisateur vs comptes connectés.
- Sign in with Google a été ajouté à votre application Android à l’aide du Credential Manager d’Android.
Configurer Sign in with Google pour les applications Android
La configuration de Sign in with Google comprend trois grandes étapes :- Créer des identifiants dans Google Cloud Console.
- Configurer les détails de l’application dans Auth0.
- Mettre à jour le code de votre application Android.
Créer des identifiants dans la Google Cloud Console
Pour commencer, vous devez d’abord configurer les éléments suivants dans votre Google Cloud Console :-
Créez un identifiant OAuth 2.0 de type
Android. Il est appeléclient_id_native. -
Ajoutez le hachage SHA1 de l’application native au client Android de l’étape 1.
- À l’heure actuelle, Google ne prend en charge que SHA1.
-
Créez un client OAuth Web supplémentaire (
client_id_web).- Dans certains cas, vous avez peut-être déjà configuré cet élément pour vos connexions sociales qui prennent en charge Sign in with Google sur le Web.
Vous ne pouvez pas utiliser Google Credential Manager avec le
client_id Android, sinon une erreur se produira. Dans l’ID Token renvoyé par Google, la partie autorisée (azp) correspond automatiquement au Client ID OAuth Android, et l’audience (aud) correspond au Client ID OAuth Web.Lorsque vous utilisez le Credentials Manager à partir d’Android, l’application native doit utiliser client_id_web au moyen de .setServerClientId dans le SDK Credentials Manager. client_id_web correspond à l’identifiant OAuth 2 de type Web Application dans la Google Cloud Console, et il est configuré dans la connexion sociale Google OAuth2. Pour en savoir plus, consultez la documentation de Google.Configurer Auth0
Le flux Sign in with Google repose sur le Token Exchange, qui s’effectue entre Auth0 et votre application Android. Après avoir créé vos identifiants dans la Google Cloud Console, vous pouvez activer Sign in with Google à l’aide du Credential Manager pour Android. Pour ce faire, mettez à jour votre application au moyen de l’ ou de la .- Auth0 Dashboard
- Management API
Pour mettre à jour l’application dans l’Auth0 Dashboard, suivez les étapes ci-dessous :
- Accédez à Applications > Applications et choisissez votre application Android native.
- Dans l’onglet Settings, développez la section Advanced Settings.
- Sélectionnez l’onglet Device Settings et activez le paramètre Enable Sign in with Google (Android 4.4+) using Credentials Manager.
- Pour les nouvelles applications : dans l’onglet Device Settings, remplissez les champs de la section Android, y compris App Package Name. Pour en savoir plus, consultez Enable Android App Links Support.
- Sélectionnez Save Changes.
Mettre à jour le code dans l’application Android
L’exemple suivant peut compléter le flux Web utilisé pour les authentifications qui ne passent pas par Google, comme Microsoft, le nom d’utilisateur et mot de passe, ou les fédérations d’entreprise.googleCredential nécessite que le code de l’application native fasse appel à la bibliothèque Google. Pour en savoir plus, consultez la documentation de Google sur Credential Manager.
Scénarios d’authentification supplémentaires
Bien que la mise en œuvre actuelle de Google ne fournisse pas de directives claires concernant la fédération d’entreprise et les demandes de vérification supplémentaires d’ (MFA), vous pouvez prendre en charge ces fonctionnalités en passant à l’expérience Web.Fédération d’entreprise
Auth0 prend en charge la fédération d’entreprise, ce qui vous permet de connecter des fournisseurs d’identité d’entreprise externes (comme Okta Workforce, ADFS ou d’autres systèmes compatibles avec OIDC) à votre tenant Auth0 afin que les utilisateurs puissent ensuite s’authentifier avec leurs identifiants d’entreprise existants. Si vous devez utiliser la fédération d’entreprise, il est recommandé de rediriger l’utilisateur vers le flux web plutôt que de vous fier auid_token, comme illustré dans les exemples précédents.
Pour ce faire, décodez le jeton Google et transmettez le email fourni dans le comme login_hint. Cela évite à l’utilisateur final d’avoir à saisir de nouveau son adresse courriel dans le flux web.
Considérations relatives à la MFA lors de l’échange de jetons
Auth0 renvoie une erreur à l’application lors de l’échange de jetons lorsque la politique de la connexion Google OAuth exige l’authentification multifacteur. Cette erreur est incluse dans la réponse envoyée à l’application. Lorsque cette erreur se produit, votre application peut utiliser WebAuth avec le contexte enrichi disponible dans leid_token de Google. Dans ce scénario, l’utilisateur final ne verra que l’écran MFA.