Ajouter une connexion avec Apple aux application iOS natives

Vous pouvez ajouter des fonctionnalités à votre application iOS native pour permettre à vos utilisateurs de s’authentifier à l’aide de Sign In with Apple (Connexion avec Apple). Pour plus de détails sur la mise en œuvre, vous pouvez essayer iOS Swift – Connexion avec Apple Quickstart de Auth0.

Fonctionnement

Pour une application native, le flux de connexion Sign In with Apple (Connexion avec Apple) fonctionne comme suit :

Diagram of the Sign In with Apple Authentication Flow
  • Étapes 1 et 2 : l’utilisateur s’authentifie via la trousse SDK d’Apple sur son appareil iOS et reçoit un code d’autorisation dans la réponse. L’utilisateur n’a pas besoin de quitter l’application et d’utiliser un navigateur pour se connecter.

  • Étape 3 : L’application appelle le point de terminaison /oauth/token d’Auth0 pour échanger le code d’autorisation d’Apple contre les 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 demandes dans les jetons pour construire l’identité de l’utilisateur.

  • Étape 6 : Auth0 enregistre le profil utilisateur, exécute les règles et l’autorisation, puis émet des jetons d’accès Auth0 (jetons d’actualisation et jetons d’ID) comme demandé. Ces jetons sont utilisés pour protéger vos API et utilisateurs gérés par Auth0.

Prérequis

Avant de configurer Sign In with Apple (la connexion avec Apple) pour votre application native dans Auth0, vous devez :

  • Disposer d’un compte Développeur Apple, qui est un compte payant avec Apple. (Il n’y a pas d’essai gratuit disponible à moins que vous ne fassiez partie de leur iOS Developer University Program (Programme universitaire pour développeurs iOS.))

  • Enregistrer votre application sur le portail des développeurs Apple si vous ne l’avez pas déjà fait. Notez les ID et la clé suivants pour les réglages de connexion de l’application dans le Auth0 Dashboard :

    • ID de l’application

    • ID d’équipe Apple

    • Clé de connexion secrète du client

    • ID de clé

  • Si vous utilisez le flux de connexion classique ou l’intégration Lock.js dans votre application, assurez-vous que vous utilisez une version Lock.js 11.16 ou ultérieure.

Configurer et activer la connexion dans Auth0

Une fois que vous disposez des informations d’identification dont vous avez besoin à partir de votre compte de développeur Apple, vous devez configurer le client d’application et les paramètres de connexion dans Auth0.

  1. Accédez à Auth0 Dashboard > Applications > Applications, sélectionnez votre application, puis l’icône d’engrenage pour afficher la page des réglages.

  2. Faites défiler jusqu’au bas de la page et sélectionnez Show Advanced Settings (Afficher les paramètres avancés) et sélectionnez l’affichage Device Settings (Réglages de l’appareil) Sous Native Social Login (Connexion sociale native), activez la bascule Native Social Login (Activer la connexion avec Apple).

    Application Client Settings: Advanced Device Settings

  3. Sous iOS, renseignez le champ ID de l’application avec l’ID de l’application/l’identifiant du bundle.

  4. Accédez à Auth0 Dashboard >Authentification > Social (Sociale) et sélectionnez Create Connection (Créer une connexion).

  5. Sélectionnez la connexion Apple et donnez votre consentement.

  6. Sur l’onglet Settings (Réglages), renseignez les champs suivants :

    • ID d’équipe Apple

    • Client Secret Signing Key (Clé de connexion secrète du client)

    • ID de clé

      Apple Social Connection Settings

  7. Sélectionnez l’affichage Applications pour activer la connexion pour votre application.

  8. Cliquez sur Save (Enregistrer).

Déconnexion

Étant donné que l’implémentation de la connexion iOS native n’utilise pas de flux standard basés sur un navigateur, les propriétaires d’applications doivent également veiller à effectuer la déconnexion de manière appropriée. Lorsqu’une application doit effectuer une déconnexion, elle doit effectuer les actions suivantes :

  • Révoquer le jeton d’actualisation Auth0

  • Supprimer le jeton d’actualisation Auth0 stocké dans la iCloud Keychain

  • Supprimer l’identifiant utilisateur Apple stocké dans la iCloud Keychain Gardez également à l’esprit que la déconnexion peut résulter des actions de l’utilisateur (par exemple, en cliquant sur un bouton « Déconnexion ») ou d’un utilisateur révoquant l’accès à l’application en question. Ce dernier sera indiqué par la méthode native ASAuthorizationAppleIDProvider.getCredentialState.

En savoir plus