Nous sommes récemment passés du flux d'octroi implicite au flux de code d'autorisation avec PKCE pour notre application, et nous rencontrons maintenant des problèmes pour obtenir des jetons d'accès d'Azure AD à partir de Postman. L'application est enregistrée dans Azure AD et nous utilisons essentiellement la procédure Postman décrite ici: https://developer.mypurecloud.com/api/rest/postman/index.html#enable_authorization . L'appel du point de terminaison https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize
fonctionne bien, mais il rencontre une erreur lors de l'appel de https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
:
"Error: Cound not complete OAuth 2.0 token request: "AADSTS9002327: Tokens issued for the 'Single-Page Application' client-type may only be redeemed via cross-origin requests.\r\nTrace ID: 8253f622-3425-4d0a-817c-281f86097300\r\nCorrelation ID: 9d84460f-ec02-4ace-af03-14d948e3d4ad\r\nTimestamp: 2020-04-15 14:02:03Z"
Voici la demande de jeton d'accès:
Comment pouvons-nous obtenir des jetons d'accès depuis Azure AD à l'aide de Postman avec ce flux d'autorisation?
3 Réponses :
1.Vous devez d'abord obtenir le code dans le navigateur , Entrez les informations de demande suivantes dans la barre d'adresse du navigateur :
2.Ensuite, entrez le code obtenu et d'autres informations de demande dans le facteur, vous obtiendrez le jeton d'accès 3.Veuillez vérifier: https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow
C'est exactement ce que j'ai fait, mais l'erreur mentionnée dans le message d'origine est le problème.
Le code d'authentification généré à partir de swagger a une longueur de 644 caractères, tandis que le code d'authentification généré à partir d'une seule page de l'application React js a une longueur de 844 caractères; le code d'authentification antérieur fonctionne avec succès tandis que plus tard avec plus de nombre de caractères nous donne cette erreur d'application d'une seule page
Apparemment, c'est un problème car la documentation est déroutante.
Sur l'inscription de l'application Azure Active Directory. Assurez-vous d'ajouter l'URL de redirection dans la catégorie " Applications mobiles et de bureau ".
Lorsque vous lisez la documentation, il semble que vous deviez ajouter l' URL de redirection sous les applications à page unique. Il affiche même un message de confirmation disant " Votre URI de redirection est éligible pour le flux de code d'autorisation avec PKCE. " Mais ce n'est pas vrai.
Vous pouvez également ajouter l'URL de rappel que Postman utilise lors de la délégation de la connexion au navigateur. Cochez «Autoriser à l'aide du navigateur» lors de l'obtention d'un nouveau jeton et vous verrez https://oauth.pstmn.io/v1/callback
. Ajoutez cela aux URI "Applications mobiles et de bureau".
Pour obtenir un refresh_token, vous devez ajouter "offline_access" à la portée.
La documentation de la réponse à la demande de jeton d'accès indique:
Un jeton d'actualisation OAuth 2.0. L'application peut utiliser ce jeton pour acquérir des jetons d'accès supplémentaires après l'expiration du jeton d'accès actuel. Refresh_tokens ont une longue durée de vie et peuvent être utilisés pour conserver l'accès aux ressources pendant de longues périodes. Pour plus de détails sur l'actualisation d'un jeton d'accès, reportez-vous à la section ci-dessous. Remarque: fourni uniquement si la portée offline_access a été demandée.
Vous devez d'abord demander le
auth code
puis avec ce code, demander un jeton d'accès.Postman fait cela automatiquement avec ce module "jeton de demande". Tout d'abord, il appelle l'URL d'authentification pour obtenir le code d'authentification, puis l'URL du jeton pour obtenir le jeton d'accès. Cependant, il y a un problème CORS ici que je ne comprends pas.
@PalBo J'ai un problème similaire ici. Avez-vous réussi à trouver une solution à cela?
Actuellement, j'obtiens le jeton d'accès du navigateur en me connectant avec un nom d'utilisateur et un mot de passe. Vous pouvez peut-être trouver des réponses ici: github.com/postmanlabs/postman-app-support/issues/3825