Fonctionnement

- É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 appelle le point de terminaison
/oauth/tokend’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
- 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’utiliserLock.jsversion 11.16 ou une version ultérieure.
Configurer et activer 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 le bouton bascule Enable Sign In with Apple.

- Sous iOS, remplissez le champ App ID avec l’App ID/l’identifiant du bundle 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 basés sur le Web.
Déconnexion
- 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.