Skip to main content
Pour tester le flux XAA, l’application demandeuse doit obtenir un grant d’autorisation d’assertion d’identité (ID-JAG) auprès de l’IdP d’entreprise, puis l’échanger auprès d’Auth0 contre un jeton d’accès. Cet article présente les deux étapes : obtenir l’ID-JAG (au moyen de SAML ou d’OIDC) et l’envoyer au point de terminaison /token d’Auth0 afin d’obtenir un jeton d’accès pour votre API. Vous pouvez tester le flux XAA manuellement ou à l’aide de notre environnement isolé en ligne (recommandé). Une fois le flux XAA testé, publiez votre application de ressources dans l’Okta Integration Network (OIN) afin d’améliorer la découvrabilité de votre application auprès de vos clients d’entreprise. Nous vous recommandons d’utiliser XAA.dev pour tester Cross App Access dans votre navigateur. Suivez les instructions pour tester votre application de ressources avec XAA.dev, qui fait office d’application demandeuse hébergée et qui vous permet d’obtenir un ID-JAG au moyen d’OIDC ou de SAML, selon votre connexion IdP, afin de l’échanger avec votre application de ressources.

Tester manuellement

Obtenir l’ID-JAG

Il existe deux façons d’obtenir un ID-JAG, selon que l’application demandeuse s’authentifie auprès de votre IdP d’entreprise à l’aide de SAML ou d’OIDC.

Application demandeuse SAML

Commencez par vous connecter à votre application demandeuse à l’aide de votre tenant IdP. Une fois connecté, l’IdP redirige le navigateur vers votre application demandeuse avec une réponse SAML. Votre application demandeuse échange ensuite de façon sécurisée l’assertion SAML contenue dans la réponse SAML contre un refresh_token OIDC, puis échange le refresh_token contre un ID-JAG.
Réponse SAML => Assertion SAML => refresh_token => ID-JAG
Une fois la réponse SAML reçue de l’IdP, extrayez l’assertion SAML à l’aide d’une bibliothèque SAML. Voici un exemple de réponse SAML :
Vous pouvez utiliser l’outil de ligne de commande xmllint pour extraire l’assertion SAML :
Pour échanger l’assertion SAML contre un jeton d’actualisation OIDC, l’application demandeuse envoie une requête d’échange de jetons au point de terminaison /token de votre IdP avec les paramètres suivants :
Si le client IdP est confidentiel, client_secret ou client_assertion est envoyé dans le Form Post ou les en-têtes HTTP; ils s’excluent donc mutuellement et sont indiqués comme facultatifs. Lorsque la requête est réussie, refresh_token est renvoyé dans la propriété access_token de la réponse JSON :
Pour échanger le refresh_token contre un ID-JAG, envoyez une autre requête d’échange de jetons au point de terminaison /token de votre IdP avec les paramètres suivants :
Si le client IdP est confidentiel, client_secret ou client_assertion est envoyé dans le Form Post ou les en-têtes HTTP; ils s’excluent donc mutuellement et sont tous deux marqués comme facultatifs. La réponse à cette requête contient l’ID-JAG dans la propriété access_token :
L’ID-JAG suit un format JWT, comme dans l’exemple suivant :
Lorsque l’application de ressource est une application SAML, l’ID-JAG comprend également une revendication sub_id contenant les renseignements SAML NameID (format, issuer, nameid et nameid_format) de l’utilisateur authentifié, en plus de la revendication sub standard.

Application demandeuse OIDC

Commencez par vous connecter à votre application demandeuse à l’aide de votre tenant IdP. Une fois la connexion réussie, l’IdP redirige le navigateur vers votre application demandeuse avec un code d’autorisation. Votre application demandeuse échange ensuite de façon sécurisée ce code contre un jeton d’accès et un jeton ID.
Jeton ID => ID-JAG
Pour échanger le jeton ID contre un ID-JAG, l’application demandeuse envoie une requête d’échange de jetons au point de terminaison /token de votre IdP avec les paramètres suivants :
Si le client IdP est confidentiel, client_secret ou client_assertion est envoyé dans le Form Post ou les en-têtes HTTP; ils s’excluent donc mutuellement et sont marqués comme facultatifs.

Envoyer l’ID-JAG au point de terminaison /token d’Auth0

Une fois que l’application demandeuse obtient un ID-JAG, elle envoie une demande de jeton d’accès au point de terminaison /token de votre tenant Auth0 :
Si l’application demandeuse est un client confidentiel, client_secret ou client_assertion est envoyé dans le Form Post ou les en-têtes HTTP ; ils s’excluent donc mutuellement et sont indiqués comme facultatifs. Après avoir validé l’ID-JAG pour vérifier l’identité de l’utilisateur, le serveur d’autorisation Auth0 émet un jeton d’accès pour l’API de votre tenant Auth0. Le jeton d’accès comprend également les scopes demandés, autorisés par RBAC et les autres politiques définies dans votre tenant Auth0. Le serveur d’autorisation Auth0 n’émet pas de jetons d’actualisation en réponse aux échanges de jetons ID-JAG. L’application demandeuse doit donc obtenir un nouvel ID-JAG auprès de l’IdP d’entreprise et se soumettre aux contrôles d’accès applicables pour obtenir un nouveau jeton d’accès par XAA.

Publiez votre application de ressources dans l’OIN

Les fournisseurs B2B et SaaS peuvent élargir leur portée auprès des clients d’entreprise en publiant leur application de ressources dans l’Okta Integration Network (OIN). Pour savoir comment procéder, suivez les instructions de la page How to Build and List Secure Cross App Access Connections on OIN. Pour connaître la liste des champs nécessaires à la publication de votre application de ressources dans l’OIN, consultez vos journaux Auth0 relatifs à idjag-exchange-succeeded.

En savoir plus

Pour vous aider à tester le flux XAA, consultez les ressources suivantes :
  • Auth0 Cross App Access Inspector : une application Node.js simple qui permet de tester le flux XAA entre Okta et Auth0.
  • XAA.dev : un environnement isolé en ligne pour tester Cross App Access dans votre navigateur.