Passer au contenu principal
Vous pouvez ajouter cette fonctionnalité à votre application iOS native afin de permettre à vos utilisateurs de s’authentifier avec Sign In with Apple. Pour en savoir plus sur l’implémentation, consultez le guide de démarrage rapide iOS Swift - Sign In with Apple d’Auth0.

Fonctionnement

Pour une application native, le flux de connexion Sign in with Apple fonctionne comme suit :
Schéma du flux d’authentification Sign In with Apple
  • Étapes 1 et 2 : L’utilisateur s’authentifie au moyen du SDK d’Apple sur son appareil iOS et reçoit un code d’autorisation dans la réponse. Il n’a pas à quitter l’application ni à utiliser un navigateur pour se connecter.
    Évitez d’utiliser un nonce. Cela fera échouer la requête envoyée à Apple à l’étape 4, et Auth0 renverra une erreur 400 à l’utilisateur : “Error from Apple connection.”
  • Étape 3 : L’application appelle le point de terminaison /oauth/token d’Auth0 pour échanger le code d’autorisation Apple contre des jetons Auth0.
  • Étapes 4 et 5 : La plateforme Auth0 échange le code d’autorisation avec Apple contre des jetons. Auth0 valide les jetons et utilise les revendications qu’ils contiennent pour établir l’identité de l’utilisateur.
  • Étape 6 : Auth0 enregistre le profil de l’utilisateur, exécute les Rules et l’autorisation, puis délivre les Auth0 ( et ) selon ce qui a été demandé. Ces jetons servent à protéger vos API et les utilisateurs gérés par Auth0.

Prérequis

Avant de configurer Sign In with Apple pour votre application native dans Auth0, vous devez :
  • Avoir un compte Apple Developer, qui est un compte payant chez Apple. (Il n’y a pas d’essai gratuit, sauf si vous faites partie de leur programme universitaire pour développeurs iOS.)
  • Enregistrer votre application dans le portail Apple Developer si ce n’est pas déjà fait. Prenez note des ID et de la clé ci-dessous pour les paramètres de la connexion de l’application dans le  :
    • ID de l’application
    • ID d’équipe Apple
    • Clé de signature du secret client
    • ID de clé
  • Si vous utilisez le flux de Classic Login ou intégrez Lock.js à votre application, assurez-vous d’utiliser Lock.js version 11.16 ou une version ultérieure.

Configurer et activer la connexion dans Auth0

Une fois que vous avez obtenu les identifiants nécessaires dans votre compte Apple Developer, vous devez configurer l’application et les paramètres de la connexion dans Auth0.
  1. Accédez à Auth0 Dashboard > Applications > Applications, choisissez votre application, puis sélectionnez l’icône d’engrenage pour afficher la page des paramètres.
  2. Au bas de la page, sélectionnez Show Advanced Settings, puis la vue Device Settings. Sous Native Social Login, activez le bouton bascule Enable Sign In with Apple.
    Paramètres de l’application : paramètres avancés de l’appareil
  3. Sous iOS, remplissez le champ App ID avec l’App ID/l’identifiant du bundle de l’application native.
  4. Accédez à Auth0 Dashboard > Authentication > Social, puis sélectionnez Create Connection.
  5. Sélectionnez la connexion Apple et donnez votre consentement.
  6. Dans l’onglet Settings, remplissez les champs suivants :
    • Apple Team ID
    • Client Secret Signing Key
    • Key ID
      Paramètres de la connexion sociale Apple
  7. Sélectionnez la vue Applications pour activer cette connexion pour votre application.
  8. Cliquez sur Save.
Les applications natives ne peuvent pas être testées dans le navigateur. Cela signifie que le bouton Try Connection de la connexion Apple est utilisé exclusivement pour tester les flux basés sur le Web.

Déconnexion

Comme l’implémentation de connexion native sur iOS n’utilise pas les flux standard basés sur le navigateur, les responsables de l’application doivent aussi s’assurer d’effectuer correctement la déconnexion. Lorsqu’une application doit déconnecter un utilisateur, elle doit effectuer les actions suivantes :
  • Révoquer le Jeton d’actualisation Auth0
  • Supprimer le jeton d’actualisation Auth0 stocké dans le trousseau iCloud
  • Supprimer l’identifiant utilisateur Apple stocké dans le trousseau iCloud Gardez également à l’esprit que la déconnexion peut résulter d’actions de l’utilisateur (par exemple, cliquer sur un bouton « Se déconnecter ») ou du fait qu’un utilisateur révoque l’accès à l’application en question. Ce dernier cas sera indiqué par la méthode native ASAuthorizationAppleIDProvider.getCredentialState.
Une particularité de l’IdP d’Apple est qu’il ne renvoie les scopes demandés (comme le courriel, le prénom et le nom de famille) dans l’ID Token qu’à la première réponse. Des approches de déconnexion plus destructrices (comme la suppression de l’utilisateur) pourraient entraîner une perte d’informations de profil, ce qui obligerait les utilisateurs finaux à retirer l’autorisation accordée à une application, puis à l’autoriser de nouveau.

En savoir plus