J'ai une application angulaire qui parle à l'WebAPI et les utilisateurs sont authentifiés contre Azure Active DirectoryComment accéder à l'API graphique de l'API Web dans l'application SPA
J'ai suivi l'échantillon ici https://github.com/Azure-Samples/active-directory-angularjs-singlepageapp-dotnet-webapi et a été en mesure d'authentifier l'utilisateur contre AD et transmettre cela à l'API Web.
Cependant, je veux accéder à l'API graphique dans l'API Web et obtenir les informations de profil utilisateur en cours. Comment puis-je le configurer?
Mise à jour pour donner plus de contexte sur la configuration:
J'ai un site Web (site.domain1.com) qui héberge html et les fichiers javascript qui rend une application SPA. J'ai une API Web hébergée sur api.domain2.com. L'authentification est contre Azure AD utilisant le flux implicite OAuth avec ADAL.js et angular-adal. Je veux m'authentifier dans SPA pour obtenir l'accessToken pour l'API. Et je veux dans l'API comme la partie de la demande de requête API Graph pour obtenir plus d'informations sur l'utilisateur connecté.
Je suis en mesure d'obtenir le accessToken pour l'API et il produit le principal de réclamations actuellement. Le problème consiste à interroger l'API graphique avec l'identité actuelle que j'ai dans l'API Web.
Mise à jour:
Je ne veux pas donner des privilèges d'administrateur à l'API Web mais je veux plutôt de transmettre le consentement de l'utilisateur pour que le « Lire le profil de l'utilisateur » du navigateur sur le site Web et l'api web.
I utilisé approche similaire à au nom de l'échantillon situé ici https://github.com/Azure-Samples/active-directory-dotnet-webapi-onbehalfof
le problème que cela a fonctionné pour mon AD test et ne fonctionne pas pour les AD de production. Dire que l'utilisateur doit concent l'App avant d'utiliser le Graph Api. (Pour la production AD I seulement l'utilisateur pouvait ajouter des privilèges d'utilisateur mais pas les privilèges d'application. Ma conjecture est que pour que ce schéma fonctionne, j'ai eu besoin de Global Admin de l'AD pour commencer. Finalement, j'ai fini par fusionner les applications Azure AD pour Web Site et l'API Web et cela a fonctionné avec la même approche On Behalf Of avec les Tokens Bootstrap. Mais je veux savoir comment le faire fonctionner correctement avec 2 applications.
Avez-vous vu la exemple: https: //github.com/Azure-Samples/active-directory-angularjs-singlepageapp-dotnet-webapi/tree/graph-cors –
Oui, je l'ai fait. Merci pour le lien. La différence est que dans cet exemple, ils accèdent à l'API Graph à partir de JavaScript, mais je veux le faire à partir de l'API Web. Cela fonctionne aussi bien pour moi si j'accède à l'API graphique à partir du JavaScript, mais je veux le faire à partir de l'API Web. –
Ok, je vois. Je vous fournis des échantillons, j'espère qu'ils pourront vous aider. –