web-dev-qa-db-fra.com

L'application a besoin d'une autorisation pour accéder aux ressources de votre organisation que seul un administrateur peut accorder

Nous avons créé une application convergée pour une communauté publique (les utilisateurs AD et live peuvent se connecter) en utilisant Microsoft Graph et les étendues openid, email, profile et user.readBasic.all.

Tout fonctionne bien pour les utilisateurs en direct, mais certains utilisateurs AD ne peuvent pas se connecter. Quand ils essaient de se connecter, ils reçoivent le message

"L'application a besoin d'une autorisation pour accéder aux ressources de votre organisation que seul un administrateur peut accorder. Veuillez demander à un administrateur d'accorder l'autorisation à cette application avant de pouvoir l'utiliser."

selon Microsoft document nous avons préparé l'URL de consentement de l'administrateur en tant que

https://login.microsoftonline.com/<TenantID>/oauth2/authorize?client_id=<AppID>&response_type=code&redirect_uri=<RedirectURI>&Prompt=admin_consent

Après le consentement de l'administrateur, les utilisateurs ne peuvent pas non plus se connecter à l'application. Aidez-nous s'il vous plaît ce que nous manquons ici.

6
Venuu Munnuruu

Votre URL est pour le point de terminaison v1, pas le point de terminaison v2 (aka point de terminaison convergé).

Cela devrait ressembler à ceci (saut de ligne pour plus de lisibilité):

https://login.microsoftonline.com/common/adminconsent?
client_id=[APPLICATION ID]&redirect_uri=[REDIRECT URI]

Notez que c'est /adminconsent plutôt que /authorize et il n'y a pas de paramètre de requête Prompt. Gardez également à l'esprit que vous devrez vous assurer que votre inscription inclut les étendues pour lesquelles vous souhaitez obtenir le consentement.

J'ai écrit un article qui vous guide tout au long du processus qui devrait s'avérer utile ici: v2 Endpoint and Admin Consent

5
Marc LaFleur