Utiliser l’IA pour intégrer Auth0
Utiliser l’IA pour intégrer Auth0
Si vous utilisez un assistant de codage par IA comme Claude Code, Cursor ou GitHub Copilot, vous pouvez ajouter automatiquement l’authentification Auth0 en quelques minutes à l’aide des agent skills.Installation :Demandez ensuite à votre assistant IA :Votre assistant IA créera automatiquement votre application Auth0, récupérera les informations d’identification, installera le SDK Auth0 OidcClient, configurera les paramètres propres à la plateforme et mettra en place les flux de connexion et de déconnexion. Documentation complète sur les agent skills →
Premiers pas
Créer un projet .NET
Créez un nouveau projet .NET MAUI ou .NET Android/iOS pour ce guide de démarrage rapide.
- .NET MAUI
- .NET Android
- .NET iOS
Dans Visual Studio 2022 ou une version ultérieure :
- Fichier → Nouveau → Projet
- Sélectionnez le modèle .NET MAUI App
- Configurez votre projet :
- Nom du projet :
Auth0MauiSample - Emplacement : Choisissez l’emplacement souhaité
- Framework : .NET 8.0 ou version ultérieure
- Nom du projet :
- Cliquez sur Créer
Ce guide de démarrage rapide met l’accent sur .NET Android et iOS, qui constituent la nouvelle génération de Xamarin.Android et Xamarin.iOS. Si vous utilisez encore Xamarin, vous pouvez suivre ce guide, car l’intégration est identique et les SDK sont compatibles.
Installer le SDK d’Auth0
Ajoutez le SDK client OIDC Auth0 à votre projet.
- Console du gestionnaire de packages
- Visual Studio pour Mac
- .NET CLI
Ouvrez la console du gestionnaire de packages (View → Other Windows → Package Manager Console) et installez le package approprié :Pour .NET Android :Pour .NET iOS :Pour .NET MAUI (les deux plateformes) :
Package Manager Console
Package Manager Console
Package Manager Console
Configurez votre application Auth0
Créez une nouvelle application dans votre locataire Auth0 et configurez-la pour le mobile.Remplacez :Allowed Logout URLs:Utilisez les mêmes URL que pour vos URL de rappel.
- Accédez au Auth0 Dashboard
- Cliquez sur Applications → Applications → Create Application
- Saisissez un nom pour votre application, sélectionnez Native comme type d’application, puis cliquez sur Create
- Ouvrez l’onglet Settings sur la page des détails de l’application
- Prenez note de votre Domaine et de votre ID client : vous en aurez besoin à l’étape suivante
- Android
- iOS
YOUR_ANDROID_PACKAGE_NAMEpar le nom du package de votre application (p. ex.,com.mycompany.myapp){yourDomain}par votre domaine Auth0 (p. ex.,dev-abc123.us.auth0.com)
com.mycompany.myapp://dev-abc123.us.auth0.com/android/com.mycompany.myapp/callbackLes Allowed Callback URLs sont essentielles à la sécurité : elles garantissent que les utilisateurs sont redirigés de façon sécuritaire vers votre application après l’authentification. Sans URL correspondante, le processus de connexion échouera.Les Allowed Logout URLs offrent une expérience fluide lorsque les utilisateurs se déconnectent, en les redirigeant vers votre application au lieu de les laisser sur une page Auth0.
Initialiser l’application Auth0
Créez une instance d’
Auth0Client pour communiquer avec Auth0.- Android - MainActivity
- iOS - AppDelegate
MainActivity.cs
IntentFilter enregistre votre application pour traiter l’URL de rappel. LaunchMode.SingleTask garantit qu’Android ne crée pas une nouvelle instance d’activité lorsque l’URL de rappel est appelée.Mettre en œuvre la connexion et la déconnexion
Ajoutez des méthodes pour gérer l’authentification de l’utilisateur.Implémentez la connexion :Implémentez la déconnexion :
Authentication.cs
Authentication.cs
La méthode
LoginAsync() lance le navigateur du système (ou Chrome Custom Tabs sur Android) pour afficher la page Universal Login d’Auth0. Après l’authentification, l’utilisateur est redirigé vers votre application au moyen de l’URL de rappel.Lancez votre application
Compilez et exécutez votre application.Flux attendu :
- Visual Studio (Windows)
- Visual Studio pour Mac
- .NET CLI
Pour Android :
- Sélectionnez un émulateur Android ou un appareil connecté dans la liste déroulante des appareils
- Appuyez sur F5 ou cliquez sur le bouton Run
- L’application sera compilée, déployée et lancée
- Connectez-vous à votre hôte de compilation Mac
- Sélectionnez un simulateur ou un appareil iOS dans la liste déroulante des appareils
- Appuyez sur F5 ou cliquez sur le bouton Run
- L’application s’ouvre avec un bouton Login
- Touchez Log In → Le navigateur ou un onglet personnalisé Chrome s’ouvre → Terminez l’authentification
- Redirection automatique vers votre application
- L’utilisateur est authentifié avec succès
Point de contrôleVous disposez maintenant d’une expérience de connexion Auth0 entièrement fonctionnelle dans votre application .NET pour Android ou iOS. L’application utilise le navigateur système pour une authentification sécurisée et gère automatiquement le flux de redirection.
Accéder aux informations de l’utilisateur
Résultat de l’authentification
LoginAsync() renvoie un objet LoginResult contenant :
UserInfo.cs
Parcourir l’ensemble des revendications
UserClaims.cs
Les revendications renvoyées dépendent exactement des scopes demandés. Pour en savoir plus, consultez Utilisation des scopes dans la documentation du client OIDC Auth0.
Demander des scopes personnalisés
CustomScopes.cs
Dépannage et aspects avancés
Problèmes courants et solutions
Problèmes courants et solutions
Le navigateur ne redirige pas vers l’application
Solutions :- Vérifiez que les URL de rappel dans le Auth0 Dashboard correspondent exactement au nom du package ou à l’identifiant de bundle de votre application
- Assurez-vous que les URL de rappel sont en minuscules
- Vérifiez que
DataScheme,DataHostetDataPathPrefix(Android), ou le schéma d’URL (iOS), correspondent à votre configuration - Nettoyez et recompilez votre projet
L’authentification échoue avec l’erreur “Invalid Callback URL”
Correctif :- Vérifiez de nouveau que votre URL de rappel dans le Auth0 Dashboard respecte le format suivant :
- Android :
packagename://yourdomain/android/packagename/callback - iOS :
bundleidentifier://yourdomain/ios/bundleidentifier/callback
- Android :
- Assurez-vous que l’URL est en minuscules
- Vérifiez que le Domaine dans votre code correspond au Domaine dans le Auth0 Dashboard
LoginAsync() bloque ou ne se termine jamais
Solutions :- Assurez-vous que le filtre d’intent (Android) ou le schéma d’URL (iOS) est correctement configuré
- Vérifiez que
OnNewIntent()(Android) ouOpenUrl()(iOS) appelleActivityMediator - Vérifiez que votre application peut ouvrir le navigateur système
- Vérifiez la connexion réseau
Erreur : “Default App must use Token Endpoint Authentication Method ‘None’”
Correctif :- Accédez aux paramètres de votre application Auth0 dans le Dashboard
- Faites défiler jusqu’à Application Properties
- Réglez Application Type sur Native
- Réglez Token Endpoint Authentication Method sur None
- Cliquez sur Save Changes
iOS : Le navigateur ne s’ouvre pas
Solutions :- Vérifiez que
Info.plistcontient la bonne configuration de schéma d’URL - Vérifiez que
OpenUrl()est implémenté dansAppDelegate - Assurez-vous que la cible de déploiement iOS est compatible avec la version de votre SDK Auth0
Considérations pour la production
Considérations pour la production
Bonnes pratiques de sécurité
- Stockage sécurisé des jetons : Utilisez le stockage sécurisé propre à la plateforme (Android Keystore, iOS Keychain) pour stocker les jetons
- Actualisation des jetons : Implémentez la gestion des jetons d’actualisation afin de maintenir les sessions utilisateur
- Épinglage de certificats : Envisagez l’épinglage de certificats pour renforcer la sécurité de l’API
- ProGuard/obfuscation du code : Ajoutez les règles appropriées si vous utilisez l’obfuscation du code sur Android
Exigences des boutiques d’applications
- Politique de confidentialité : Assurez-vous que votre application dispose d’une politique de confidentialité qui décrit l’utilisation d’Auth0
- Gestion des données des utilisateurs : Suivez les directives de la plateforme pour gérer les données d’authentification des utilisateurs
- Liens profonds : Testez minutieusement la gestion des URL de rappel dans différents scénarios
- Exigences réseau : Gérez correctement les scénarios hors ligne
Optimisation des performances
- Mettre Auth0Client en cache : Créez une seule instance et réutilisez-la dans toute votre application
- Chargement différé : Initialisez Auth0Client uniquement au besoin
- Actualisation en arrière-plan : Implémentez l’actualisation des jetons en arrière-plan pour les sessions de longue durée
Configuration avancée
Configuration avancée
Scopes personnalisés et audience
Demandez des scopes précis et définissez une audience pour votre API :AdvancedAuth.cs
Paramètres supplémentaires
Ajoutez des paramètres supplémentaires à la requête d’autorisation :ExtraParams.cs
Jetons d’actualisation
Utilisez des jetons d’actualisation pour obtenir de nouveaux jetons d’accès sans intervention de l’utilisateur :RefreshToken.cs
Pour recevoir un jeton d’actualisation, incluez le scope
offline_access dans votre requête d’authentification.Configuration du navigateur selon la plateforme
Android - Utiliser Chrome Custom Tabs avec des couleurs personnalisées :AndroidBrowser.cs
iOSBrowser.cs
Prochaines étapes
Configurer des fournisseurs d’identité
Ajoutez des fournisseurs de connexion sociale comme Google, Facebook et GitHub
Activer l’authentification multifacteur
Ajoutez une couche de sécurité supplémentaire avec MFA
Protection contre les attaques
Découvrez comment vous protéger contre les attaques par force brute et les bots
Personnaliser l’expérience de connexion
Personnalisez la page Universal Login pour qu’elle reflète votre image de marque