Skip to main content
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 la mise en œuvre, consultez le iOS Swift - Sign In with Apple Quickstart 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 à l’utilisateur une erreur 400 : “Error from Apple connection.”
  • Étape 3 : L’application envoie une requête au point de terminaison /oauth/token d’Auth0 afin d’é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 claims qu’ils contiennent pour construire l’identité de l’utilisateur.
  • Étape 6 : Auth0 enregistre le profil de l’utilisateur, exécute les Rules et l’autorisation, puis émet des Auth0 ( et ) selon ce qui est demandé. Ces jetons servent à protéger vos API et vos 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 d’Apple. (Il n’y a pas d’essai gratuit, sauf si vous faites partie de leur iOS Developer University Program.)
  • Enregistrer votre application dans le portail Apple Developer si ce n’est pas déjà fait. Prenez en note les ID et la clé suivants pour les paramètres de connexion de l’application dans le  :
    • App ID
    • Apple Team ID
    • Client Secret Signing Key
    • Key ID
  • Si vous utilisez le flux de connexion Classic Login ou intégrez Lock.js à votre application, assurez-vous d’utiliser Lock.js version 11.16 ou ultérieure.

Configurer et activer la connexion dans Auth0

Une fois que vous avez obtenu les identifiants nécessaires à partir de votre compte Apple Developer, vous devez configurer le client d’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 la bascule Enable Sign In with Apple.
    Paramètres du client d’application : paramètres avancés de l’appareil
  3. Sous iOS, remplissez le champ App ID avec l’App ID/le Bundle Identifier 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 Web.

Déconnexion

Comme la mise en œuvre de la connexion Native iOS n’utilise pas les flows standard basés sur le navigateur, les responsables de l’application doivent aussi veiller à effectuer la déconnexion correctement. Lorsqu’une application doit effectuer une déconnexion, elle doit prendre les mesures suivantes :
  • Révoquer le jeton d’actualisation Auth0
  • Supprimer le jeton d’actualisation Auth0 stocké dans le Keychain iCloud
  • Supprimer l’identifiant utilisateur Apple stocké dans le Keychain iCloud De plus, gardez à l’esprit que la déconnexion peut résulter d’actions de l’utilisateur (par exemple, lorsqu’il clique 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 l’adresse courriel, le prénom et le nom de famille) dans le jeton ID que dans la première réponse. Des approches de déconnexion plus radicales (comme la suppression de l’utilisateur) pourraient entraîner une perte d’information de profil, ce qui obligerait les utilisateurs finaux à retirer l’autorisation de l’application puis à l’autoriser de nouveau.

En savoir plus