Acteurs
- Navigateur : affiche le Portail et les composants.
- Serveur du Portail : connecte les utilisateurs, stocke les jetons et relaie les appels des composants vers les serveurs de ressources.
- Auth0 : le serveur d’autorisation qui connecte les utilisateurs et émet les jetons.
- API My Account et API My Organization : les serveurs de ressources qu’appellent les composants.
- Côté serveur de Forms : exécute Auth0 Forms et leurs flux.
Accès avec authentification unique
Lorsqu’un utilisateur ouvre l’URL du portail, le serveur du portail lance un flux de code d’autorisation avec Proof Key for Code Exchange (PKCE). Si l’utilisateur a déjà une session Auth0, Auth0 renvoie un code d’autorisation sans afficher d’invite de connexion. Le serveur du portail échange ce code contre un jeton d’ID, un jeton d’accès et un jeton d’actualisation, puis les stocke. Il définit ensuite le témoin de session. Si l’utilisateur n’a pas de session Auth0, Auth0 affiche la page de connexion avant de renvoyer le code.Accès avec un jeton de transfert de session
Une application native peut transmettre un jeton de transfert de session dans l’URL du portail. Le serveur du portail transmet ensuite le jeton à/authorize. Auth0 valide le jeton, connecte l’utilisateur sans afficher d’invite et renvoie le code, comme pour l’. Un jeton de transfert de session est à usage unique et expire au bout de 60 secondes. Si Auth0 rejette le jeton, l’utilisateur est redirigé vers la page de connexion.
Pour mettre en œuvre ce scénario, consultez Ouvrir un portail à partir d’une application native.
Appels d’un composant à un serveur de ressources
Un composant n’appelle jamais un serveur de ressources directement depuis le navigateur. Il envoie plutôt la requête au serveur du portail, à l’adresse/portals/{slug}/proxy/..., en précisant le public et la permission dont il a besoin. Le serveur du portail ajoute un jeton d’accès, puis transmet la requête à l’API.
Émission des jetons d’accès
Les portails exigent toujours un . Le serveur du portail s’en sert comme principal mécanisme pour émettre des jetons d’accès pour chaque serveur de ressources qu’appellent vos composants. Il s’appuie sur un jeton d’actualisation multiressource (MRRT) pour passer d’un public à l’autre, de sorte que l’utilisateur n’a à se connecter qu’une seule fois. Le portail réutilise un jeton d’accès jusqu’à son expiration, puis en émet un nouveau. L’application du portail requiert deux paramètres pour chaque serveur de ressources : une autorisation client qui accorde les permissions et une politique de jeton d’actualisation qui autorise l’échange. Pour en savoir plus, consultez Multi-Resource Refresh Token.Serveurs de ressources autorisés
Les appels des composants sont acheminés uniquement vers l’API My Account et l’API My Organization de votre locataire, et seulement vers celles pour lesquelles l’application du portail dispose d’une autorisation client. La configuration recommandée accorde l’accès aux deux. Le serveur du portail rejette avec le code403 toute requête destinée à un autre public.
Limites anti-attaques
Si l’API My Account renvoie429 Too Many Requests pendant qu’un composant d’authentification multifacteur (MFA) ou de clé d’identification charge des données, le Portal remplace ce composant par le message « Too many requests » accompagné d’un bouton Réessayer.
Authentification renforcée
C’est en fonction des politiques et des Actions de votre locataire qu’une opération exige ou non la MFA. Par exemple, imaginons que votre locataire dispose de l’Action post-login suivante. Celle-ci déclenche un défi MFA lorsqu’un échange de jeton d’actualisation demande l’accès à l’API My Account avec la permission de supprimer une méthode d’authentification. Comme le domaine est tiré du nom d’hôte de la requête, l’Action fonctionne aussi bien avec votre domaine Auth0 qu’avec un domaine personnalisé :mfa_required. Le Portail lance le défi MFA dans une fenêtre contextuelle et relance la requête initiale une fois que l’utilisateur l’a complété. Pour en savoir plus, consultez Déclencheurs d’Actions : post-login - Objet API.
Soumission des Forms
Un Form Auth0 s’affiche dans la page du portail, mais ses requêtes vont directement du navigateur au côté serveur de Forms, sans passer par le serveur du portail. C’est le côté serveur de Forms qui exécute le flux. Si le flux appelle une API, il utilise les informations d’identification d’une connexion au coffre-fort de Forms. L’API est un serveur de ressources, généralement la Management API, mais il peut s’agir de n’importe quelle API. Le Form reçoit son contexte du jeton d’ID de l’utilisateur au chargement du Portal. Pour en savoir plus, consultez Variables de contexte des Forms.Sessions et durées de vie des jetons
Un Portal comporte deux sessions et deux types de jetons :- Session Auth0 : établie par Auth0 lorsque l’utilisateur se connecte. Elle est régie par les paramètres de session de votre locataire.
- Session du Portal : le témoin de session du Portal. Elle prend fin après 1 heure d’inactivité ou 1 jour après la connexion, selon la première éventualité.
- Jeton d’actualisation : l’information d’identification qu’utilise le serveur du portail pour générer des jetons d’accès. Tous les appels d’API en dépendent; configurez donc ses durées de vie en fonction de la session du portail.
- Jeton d’accès : généré lorsqu’un composant en a besoin, puis réutilisé jusqu’à son expiration. Configurez sa durée de vie sur le serveur de ressources conformément à votre politique de sécurité.
Prochaines étapes
Démarrage rapide des Universal Portals
Créez votre premier Portal en quelques minutes.
Configurer une application pour les Universal Portals
Définissez les autorisations client et les politiques de jeton d’actualisation requises pour l’émission des jetons d’accès.
Accéder aux Portals
Redirigez les utilisateurs de vos applications vers le Portal.
Dépanner les Universal Portals
Corrigez les erreurs de connexion, de session et d’API.