Utilisez l’IA pour intégrer Auth0
Utilisez l’IA pour intégrer Auth0
Si vous utilisez un assistant de codage IA comme Claude Code, Cursor ou GitHub Copilot, vous pouvez ajouter l’authentification Auth0 automatiquement en quelques minutes à l’aide d’Agent Skills.Installez :Demandez ensuite à votre assistant IA :Votre assistant IA créera automatiquement votre application Auth0, récupérera l’information d’identification, ajoutera la dépendance du SDK Auth0.swift, configurera Auth0.plist, mettra en place les URL de rappel et implémentera les flux de connexion et de déconnexion. Documentation complète sur Agent Skills →
Pour commencer
1
Créer un nouveau projet
Créez un nouveau projet iOS ou macOS pour ce Quickstart.Dans Xcode :
- File → New → Project (ou ⌘+Shift+N)
- Sélectionnez l’une des options suivantes :
- Onglet iOS → modèle App
- Onglet macOS → modèle App
- Configurez votre projet :
- Product Name :
Auth0-Sample - Interface : SwiftUI
- Language : Swift
- Use Core Data : décoché
- Include Tests : coché (recommandé)
- Product Name :
- Choisissez un emplacement, puis cliquez sur Create
2
Ajouter le SDK Auth0
Ajoutez le SDK Auth0 à votre projet à l’aide du gestionnaire de paquets de votre choix.
- Swift Package Manager
- CocoaPods
- Carthage
Dans Xcode :
- File → Add Package Dependencies… (ou ⌘+Shift+K)
- Entrez l’URL du SDK Auth0 :
- Add Package → Sélectionnez la cible de votre application → Add Package
3
Configurer Auth0
Créez une nouvelle application Auth0 et configurez les URL de rappel.
- Accédez au Auth0 Dashboard
- Applications > Create Application > Attribuez-lui un nom, sélectionnez Native > Create
- Dans l’onglet Settings, notez votre Client ID et votre Domain
- Ajoutez les URL suivantes à Allowed Callback URLs :
- iOS
- macOS
- Ajoutez les URL suivantes à Allowed Logout URLs :
- iOS
- macOS
- Cliquez sur Save Changes
4
Configurer les identifiants de l’application
Créez Faites glisser
Auth0.plist dans le répertoire de votre projet :Auth0.plist
Auth0.plist dans Xcode et assurez-vous que l’option “Add to target” est cochée.5
Créer le service d’authentification
Créez
AuthenticationService.swift pour gérer la connexion, la déconnexion et le stockage des jetons.Utilisez
CredentialsManager pour le stockage des jetons. La classe CredentialsManager stocke les informations d’identification de manière sécurisée dans le Keychain et actualise automatiquement les jetons d’accès expirés. Utilisez-la toujours — ne stockez jamais de jetons en mémoire, dans UserDefaults ou dans localStorage.- Cliquez avec le bouton droit sur votre projet → New File… → Swift File
- Nommez-le
AuthenticationService - Remplacez le contenu par :
AuthenticationService.swift
6
Configurer le processus d’authentification (facultatif)
Pour améliorer l’expérience utilisateur, vous pouvez réduire les alertes système des façons suivantes :
- Utilisez Universal Links : cela élimine l’invite ‘Open in “AppName”?’ qui s’affiche pendant la redirection. Remarque : l’alerte d’autorisation d’ASWebAuthenticationSession s’affichera quand même.
- Utilisez des sessions éphémères : cela élimine toutes les alertes d’autorisation. Remarque : cela désactive le Single Sign-On (SSO) et les cookie partagés.
- Universal Links
- Ephemeral Session
- Auth0 Dashboard → Applications → votre application → Settings → Advanced Settings → Device Settings
- Ajoutez Apple Team ID et bundle identifier → Save
- Xcode : Target → Signing & Capabilities → + Capability → Associated Domains
- Ajoutez :
webcredentials:{yourDomain}
8
Lancez votre application
Appuyez sur ⌘+R dans Xcode.
- Touchez “Se connecter” → alerte d’autorisation (si vous utilisez l’option par défaut) → Touchez “Continuer”
- Terminez la connexion dans le navigateur
- Consultez votre profil !
VérificationVous disposez maintenant d’une connexion avec Auth0 entièrement fonctionnelle dans votre application iOS ou macOS !
Dépannage et avancé
Problèmes courants et solutions
Problèmes courants et solutions
Erreurs de build : module « Auth0 » introuvable
Solutions :- Swift Package Manager : vérifiez Package Dependencies → assurez-vous que
Auth0.swiftfigure dans la liste - CocoaPods : assurez-vous d’ouvrir le fichier
.xcworkspace, et non.xcodeproj - Carthage : vérifiez que
Auth0.xcframeworka bien été ajouté à Frameworks, Libraries, and Embedded Content - Nettoyez et reconstruisez : ⌘+Shift+K puis ⌘+R
- Redémarrez Xcode au besoin
Plantage de l’application : « Auth0.plist not found »
Correctif :- Vérifiez que
Auth0.plistse trouve dans le navigateur de projet d’Xcode - Sélectionnez le fichier → Inspector → assurez-vous que la cible de votre application est cochée
- Vérifiez qu’il contient les clés
ClientIdetDomainavec vos valeurs
Le navigateur s’ouvre, mais ne revient jamais à l’application
Correctif :- Vérifiez que les URL de rappel dans le Auth0 Dashboard correspondent exactement à votre identificateur de bundle et à votre plateforme
- Pour iOS : les URL doivent contenir
/ios/, pour macOS :/macos/ - Vérifiez que l’identificateur de bundle dans Xcode correspond aux paramètres d’Auth0
- Assurez-vous qu’il n’y a pas de fautes de frappe dans les URL (p. ex. : deux-points manquants, mauvais format de domaine)
- Utilisateurs d’un domaine personnalisé : vérifiez que vous utilisez bien votre domaine personnalisé, et non le domaine Auth0
L’alerte d’autorisation apparaît chaque fois
Il s’agit du comportement de sécurité normal d’iOS/macOS lors de l’utilisation de schémas d’URL personnalisés. Consultez l’étape 6 pour éliminer cette alerte à l’aide des liens universels ou des sessions éphémères.Configuration du domaine personnalisé
Configuration du domaine personnalisé
Si vous utilisez un domaine personnalisé, utilisez-le partout à la place de votre domaine Auth0.Exemple : utilisez
login.example.com au lieu de tenant.auth0.comCela est obligatoire pour que certaines fonctionnalités marchent correctement :- Mettez à jour
Auth0.plistavec votre domaine personnalisé - Utilisez le domaine personnalisé dans les URL de rappel/de logout
- Pour les liens universels, utilisez :
webcredentials:login.example.com
Déploiement en production
Déploiement en production
Préparation pour l’App Store
- Configurez les liens universels pour éliminer l’alerte d’autorisation
- Testez sur plusieurs versions de plateforme et tailles d’écran
- Mettez en place une gestion adéquate des erreurs en cas d’échec réseau
- Ajoutez les descriptions d’utilisation relatives à la confidentialité si vous utilisez le Keychain avec la biométrie
- Suivez les directives de révision de l’App Store pour les flux d’authentification
Meilleures pratiques de sécurité
- N’inscrivez jamais de données d’authentification sensibles dans les logs en production
- Assurez la conformité à App Transport Security (ATS)
- Utilisez HTTPS pour toutes les requêtes réseau
- N’épinglez PAS les certificats de l’Auth0 API - Auth0 ne recommande pas cette pratique
Optimisation des performances
- Toutes les opérations asynchrones utilisent correctement
@MainActorpour les mises à jour de l’UI - Les propriétés
@Publishedutilisent une gestion adéquate de la mémoire - Les informations d’identification sont mises en cache de façon sécuritaire dans le Keychain pour l’accès hors ligne
- Le profil utilisateur est récupéré à partir du ID token (aucune requête réseau supplémentaire)
Intégration avancée
Intégration avancée
Sécurité renforcée du Keychain avec la biométrie
Exigez Face ID ou Touch ID pour accéder aux informations d’identification enregistrées :Actualisation automatique des jetons
LeCredentialsManager actualise automatiquement les jetons d’accès expirés :Informations d’identification partagées entre les extensions d’app
Pour les widgets, les extensions d’app ou les tâches en arrière-plan nécessitant des jetons d’accès :- Activez la fonctionnalité App Groups dans Xcode pour toutes les cibles.
- Utilisez le même identifiant de groupe d’apps pour toutes les cibles.
- Configurez le
CredentialsManagerpartagé dans chaque cible.
Comparaison des options de flux d’authentification
Recommandations :
- Apps de production avec SSO : Liens universels (meilleure expérience utilisateur, prise en charge du SSO, compte Apple Developer requis)
- Apps de production sans SSO : Sessions éphémères (aucune alerte, configuration plus simple)
- Tests/développement : Sessions éphémères (configuration rapide, expérience utilisateur épurée)
- Démarrage rapide/prototypage : Par défaut avec alertes (aucune configuration requise, migration possible ultérieurement)