La délégation de session répond à un besoin différent du SSO d’une application native vers une application web. Ce SSO transfère la session d’un utilisateur déjà authentifié depuis votre application native vers votre application web. La délégation de session permet plutôt à un acteur distinct et autorisé d’ouvrir une session au nom d’un autre utilisateur, notamment pour l’accès au soutien ou les flux de travail assistés par un agent. Si vous cherchez à transférer un utilisateur connecté de votre application native vers votre application web, consultez plutôt le SSO d’une application native vers une application web.
Fonctionnement
Partie 1 : Obtenir un jeton de transfert de session
- L’acteur (un agent de soutien) s’authentifie auprès d’Auth0 à l’aide d’un outil d’administration et obtient une preuve de sa propre identité, comme un jeton ID Auth0, à utiliser comme
actor_token. - L’outil d’administration envoie une requête à l’endpoint
/oauth/tokend’Auth0 au moyen d’une requête échange de jetons personnalisé, en définissantaudienceàurn:YOUR_AUTH0_TENANT_DOMAIN:session_transfer. - L’Action échange de jetons personnalisé associée autorise la délégation, définit l’utilisateur sujet (généralement au moyen de
setUserByConnection()), puis appellesetActor()pour enregistrer l’acteur. L’appel àsetActor()est requis pour obtenir un jeton de transfert de session. - Auth0 émet un jeton de transfert de session qui identifie l’utilisateur sujet et consigne l’acteur pour la transaction.
Partie 2 : Échanger le jeton de transfert de session (redirection dans le navigateur)
initiate_login_uri de l’application cible :
- Votre application redirige le navigateur de l’acteur vers l’
initiate_login_uride l’application cible en ajoutant le jeton de transfert de session et, si la connexion doit s’effectuer dans le scope d’une organization, un paramètreorganizationcomme paramètres de requête. - Le navigateur est alors dirigé vers l’endpoint
/authorizede votre tenant Auth0 avec le jeton de transfert de session, ce qui déclenche un échange transparent. Auth0 valide le jeton et établit une session déléguée éphémère pour l’utilisateur sujet, tout en enregistrant l’acteur danssession.actorà des fins d’audit. - L’application cible termine la connexion et reçoit un jeton d’accès et un ID token, qui contiennent tous deux un claim
actidentifiant la délégation.
Limites
- Seul le flux avec code d’autorisation est pris en charge pour établir une session déléguée. SAML, WS-Federation et le flux implicite ne sont pas pris en charge.
- Seuls les acteurs à un niveau sont pris en charge. Contrairement aux jetons d’accès de l’échange de jetons personnalisé, qui prennent en charge jusqu’à cinq niveaux d’acteurs imbriqués, un jeton de transfert de session n’accepte qu’un seul acteur.
- Aucun jeton d’actualisation n’est émis pour les sessions déléguées.
- Une session déléguée ne peut pas être établie si MFA, le consentement ou une invite d’inscription sont requis. La demande échoue avec
interaction_requiredau lieu d’afficher une invite.