Fonctionnement
Pour une application native, le flux de connexion Sign In with Apple fonctionne comme suit :
- É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.
-
Étape 3 : L’application envoie une requête au point de terminaison
/oauth/tokend’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’utiliserLock.jsversion 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.- Accédez à Auth0 Dashboard > Applications > Applications, choisissez votre application, puis sélectionnez l’icône d’engrenage pour afficher la page des paramètres.
-
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.

- Sous iOS, remplissez le champ App ID avec l’App ID/le Bundle Identifier de l’application native.
- Accédez à Auth0 Dashboard > Authentication > Social, puis sélectionnez Create Connection.
- Sélectionnez la connexion Apple et donnez votre consentement.
-
Dans l’onglet Settings, remplissez les champs suivants :
- Apple Team ID
- Client Secret Signing Key
-
Key ID

- Sélectionnez la vue Applications pour activer cette connexion pour votre application.
- 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.