2 votes

L'accès à XMLHttpRequest at 'https://login.microsoftonline.com/xxx from origin 'http://localhost:4200' a été bloqué par la politique CORS.

J'ai l'impression qu'il s'agit d'une question répétée, mais je n'ai pas réussi à la résoudre. J'ai une application angular 6 qui utilise Msal pour forcer les utilisateurs à se connecter. Après avoir réussi à se connecter, je fais une demande au point de terminaison de jeton d'aad en passant les informations d'identification du principal du service (l'identifiant de l'application et le secret du client) pour obtenir un jeton d'accès à l'api de graph comme indiqué. aquí . C'est là que j'obtiens une erreur de politique CORS.

Lorsque je désactive la sécurité du navigateur chrome, je n'obtiens pas d'erreur CORS et je peux obtenir un jeton d'accès.

Pourquoi l'erreur CORS ne se produit-elle que lorsque j'essaie d'obtenir un jeton d'accès en utilisant les informations d'identification du principal du service et non lors de la connexion de l'utilisateur à l'aide de msal ?

Dois-je avoir un script à la fin du navigateur pour que cela fonctionne ?

comment y parvenir sans compromettre la sécurité ?

L'autorité de connexion est : https://login.microsoftonline.com/ {l'identité du locataire}/

Le point de terminaison du jeton pour le service principal est : https://login.microsoftonline.com/ {id locataire}/oauth2/v2.0/token

1voto

En général, les pages web traditionnelles ou ordinaires peuvent utiliser l'objet XMLHttpRequest pour envoyer et recevoir des données de serveurs distants, mais elles sont limitées par la même politique d'origine. Le navigateur le bloque donc, alors qu'il autorise généralement une requête de même origine pour des raisons de sécurité. Cependant, Postman peut traiter ce type de requête car il n'est pas limité par cette politique.

Pour intégrer Azure Active Directory en javascript, il est recommandé d'utiliser azure-active-directory-library-for-js qui est une bibliothèque en javascript pour le frontend pour intégrer azure active directory avec une facilité, en utilisant flux de subventions implicites Il présente également l'avantage d'éliminer toute exigence en matière d'appels inter-origines, qui sont nécessaires si l'application JavaScript doit contacter le point de terminaison du jeton. Vous pouvez également consulter Ici Il y a un fil de discussion qui traite du même sujet et qui montre plus en détail comment utiliser MSAL.JS, veuillez vous y référer.

Vous pouvez également voir le modèle de requête côté client en java script. aquí . Je pense que le processus mentionné ci-dessus peut vous aider.

Pour plus de détails, vous pouvez lire ceci :

MSAL Demande d'une seule page

Mise en œuvre de la ADAL

Application à page unique utilisant MSAL pour B2C

Nous vous remercions.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X