Utiliser l’IA pour intégrer Auth0
Utiliser l’IA pour intégrer Auth0
Si vous utilisez un assistant IA de codage comme Claude Code, Cursor ou GitHub Copilot, vous pouvez ajouter automatiquement l’authentification Auth0 en quelques minutes à l’aide des agent skills.Installer :Demandez ensuite à votre assistant IA :Votre assistant IA créera automatiquement votre application Auth0, récupérera les informations d’identification, ajoutera la dépendance au SDK Auth0.swift, configurera Auth0.plist, définira les URL de rappel et implémentera les flux de connexion et de déconnexion. Documentation complète sur les agent skills →
Pour commencer
Créer un nouveau projet
Créez un nouveau projet iOS ou macOS dans le cadre de ce guide de démarrage rapide.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
Ajouter le SDK Auth0
Ajoutez le SDK Auth0 à votre projet avec le gestionnaire de paquets de votre choix.
- Gestionnaire de paquets Swift
- CocoaPods
- Carthage
Dans Xcode :
- File → Add Package Dependencies… (ou ⌘+Shift+K)
- Saisissez l’URL du SDK Auth0 :
- Add Package → Sélectionnez la cible de votre application → Add Package
Configurer Auth0
Créez une nouvelle application Auth0 et configurez les URL de rappel.
- Accédez à Auth0 Dashboard
- Applications > Create Application > Donnez-lui un nom, sélectionnez Native > Create
- Dans l’onglet Settings, prenez en note 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
Configurer les identifiants de l’application
Créez Glissez
Auth0.plist dans le répertoire du projet :Auth0.plist
Auth0.plist dans Xcode et assurez-vous que l’option “Add to target” est cochée.Créer le service d’authentification
Créez
AuthenticationService.swift :- Cliquez avec le bouton droit sur votre projet → Nouveau fichier… → Fichier Swift
- Nommez-le
AuthenticationService - Remplacez le contenu par :
AuthenticationService.swift
Configurer le flux 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 ‘Ouvrir dans “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 l’authentification unique (SSO) et les témoins partagés.
- Universal Links
- Session éphémère
- 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}
VérificationVous avez maintenant une connexion Auth0 entièrement fonctionnelle dans votre application iOS ou macOS !
Dépannage et notions avancées
Problèmes courants et solutions
Problèmes courants et solutions
Erreurs de compilation : 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.xcframeworkest ajouté à Frameworks, Libraries, and Embedded Content - Nettoyez et recompilez : ⌘+Shift+K puis ⌘+R
- Redémarrez Xcode au besoin
Plantage de l’application : « Auth0.plist introuvable »
Correctif :- Vérifiez que
Auth0.plistse trouve dans le navigateur de projet Xcode - Sélectionnez le fichier → Inspector → Assurez-vous que la cible de votre application est cochée
- Confirmez qu’il contient les clés
ClientIdetDomainavec vos valeurs - Autre option : Utilisez une configuration par programmation (voir la section Intégration avancée ci-dessous)
Le navigateur s’ouvre, mais ne revient jamais à l’application
Correctif :- Vérifiez que les URL de rappel dans Auth0 Dashboard correspondent exactement à votre identifiant de bundle et à votre plateforme
- Pour iOS : les URL doivent contenir
/ios/; pour macOS :/macos/ - Vérifiez que l’identifiant de bundle dans Xcode correspond aux paramètres Auth0
- Assurez-vous qu’il n’y a pas de fautes de frappe dans les URL (cas fréquents : deux-points manquants, mauvais format de domaine)
- Si vous utilisez un domaine personnalisé : Vérifiez que vous utilisez votre domaine personnalisé, et non le domaine Auth0
L’alerte d’autorisation s’affiche chaque fois
Il s’agit du comportement de sécurité standard d’iOS/macOS lors de l’utilisation de schémas d’URL personnalisés. Consultez l’étape 6 pour éliminer cette alerte à l’aide de liens universels ou de 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 fonctionnent correctement :- Mettez à jour
Auth0.plistavec votre domaine personnalisé - Utilisez le domaine personnalisé dans les URL de rappel/de déconnexion
- 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
- Implémentez une gestion appropriée des erreurs en cas d’échec réseau
- Ajoutez des descriptions d’utilisation liées à la confidentialité si vous utilisez le trousseau avec la biométrie
- Suivez les directives de révision de l’App Store pour les flux d’authentification
Bonnes pratiques de sécurité
- Ne consignez jamais de données d’authentification sensibles en production
- Assurez la conformité à App Transport Security (ATS)
- Utilisez HTTPS pour toutes les requêtes réseau
- N’UTILISEZ PAS l’épinglage des certificats d’API Auth0 - Auth0 ne recommande pas cette pratique
Optimisation des performances
- Toutes les opérations asynchrones utilisent correctement
@MainActorpour les mises à jour de l’interface utilisateur - Les propriétés
@Publishedappliquent une gestion adéquate de la mémoire - Les informations d’identification sont mises en cache de façon sécuritaire dans le trousseau pour l’accès hors ligne
- Le profil utilisateur est récupéré à partir du jeton d’identité (aucune requête réseau supplémentaire)
Intégration avancée
Intégration avancée
Configuration programmatique
Au lieu d’utiliserAuth0.plist, vous pouvez transmettre les informations d’identification directement dans votre code. C’est utile lorsque les informations d’identification doivent être dynamiques ou propres à l’environnement (p. ex., différents locataires Auth0 pour dev/staging/production).Remplacez les appels Auth0.webAuth() par Auth0.webAuth(clientId:domain:) :Sécurité renforcée du Trousseau grâce à la biométrie
Exigez Face ID ou Touch ID pour accéder aux informations d’identification stockées :Actualisation automatique des jetons
LeCredentialsManager actualise automatiquement les jetons d’accès expirés :Informations d’identification partagées entre les extensions d’application
Pour les widgets, les extensions d’application ou les tâches en arrière-plan qui ont besoin de jetons d’accès :- Activez la fonctionnalité App Groups dans Xcode pour toutes les cibles
- Utilisez le même identifiant de groupe d’applications pour toutes les cibles
- Configurez le
CredentialsManagerpartagé dans chaque cible
Comparaison des options de flux d’authentification
| Fonctionnalité | Liens universels | Session éphémère | Par défaut (alerte) |
|---|---|---|---|
| Alerte d’autorisation | Réduite (aucun message de redirection) | Aucune | Affiche toutes les alertes |
| Prise en charge du SSO | Oui | Non | Oui |
| Compte développeur Apple | Requis | Non requis | Non requis |
| Expérience utilisateur | Optimale | Bonne | Acceptable |
| Complexité de configuration | Moyenne | Facile | Facile |
| Prise en charge de la navigation privée | Oui | Oui | Non |
- Applications de production avec SSO : Liens universels (meilleure UX, prise en charge du SSO, compte développeur Apple requis)
- Applications de production sans SSO : Sessions éphémères (aucune alerte, configuration plus simple)
- Tests/Développement : Sessions éphémères (configuration rapide, UX la plus épurée)
- Démarrage rapide/Prototypage : Option par défaut avec alertes (aucune configuration, migration possible plus tard)