web-dev-qa-db-fra.com

OAuth2 avec Azure AD - Ne pas obtenir le consentement de l'utilisateur

J'essaie d'obtenir le flux de travail OAuth2 pour qu'il fonctionne correctement pour Azure AD. Je suis les instructions de cette source: https://msdn.Microsoft.com/en-us/library/Azure/dn645542.aspx

Je peux obtenir avec succès une réponse de code d'autorisation en utilisant cette demande: https://login.microsoftonline.com/[app-endpoint-id]/oauth2/authorize?response_type=code&client_id=[client-id]&redirect_uri=[redirect-uri]

J'utilise ensuite le code d'autorisation pour demander un jeton d'accès avec une publication http comme ceci (je teste cela en utilisant Postman):

POST /[app-endpoint-id]/oauth2/token HTTP/1.1 Host: login.microsoftonline.com Cache-Control: no-cache Postman-Token: ed098281-9aa4-6e5f-915d-0253d9a876d3 Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code&client_id=[client-id]&code=[authorization_code]&redirect_uri=[redirect_uri]&client_secret=[client-secret]&resource=[app-url]

J'obtiens le message d'erreur suivant de la demande POST:

{"error": "invalid_grant", "error_description": "AADSTS65001: L'utilisateur ou l'administrateur n'a pas consenti à utiliser l'application avec l'ID 'app-id'. Envoyez une demande d'autorisation interactive pour cet utilisateur et cette ressource.\r\nTrace ID: trace-di\r\nCorrélation ID: correlation-id\r\nTimestamp: 2016-01-13 17: 18: 39Z "," error_codes ": [65001]," timestamp ":" 2016-01-13 17 : 18: 39Z "," trace_id ":" trace-id "," correlation_id ":" correlation-id "}

Si j'efface mon cache et fais la première demande de code d'autorisation, je serai redirigé vers la connexion. Cependant, je n'ai aucun moyen d'autoriser mon application après la connexion comme il est dit dans cette documentation:

//Azure.Microsoft.com/en-us/documentation/articles/active-directory-integrating-applications/

Qu'est-ce que je fais mal ici? J'essaie d'obtenir un jeton d'accès.

17
Spensaur

Le problème que vous rencontrez est que le locataire que vous utilisez pour accéder à votre application n'a pas ajouté votre application à la liste des applications prises en charge. Il vous indique d'utiliser le flux interactif en tant qu'administrateur.

Le consentement est un processus en deux étapes:

1) Tout d'abord, l'administrateur du locataire doit approuver l'application. Cela peut être effectué 1) dans le portail Azure du locataire souhaitant utiliser l'application ou 2) en lançant l'application et en utilisant les informations d'identification d'administrateur sur l'application lorsque vous vous connectez.

Exemple d'approbation du portail Azure:

2) Deuxièmement, tout utilisateur supplémentaire (non administrateur) sera encouragé à consentir à ses informations personnelles lors de la première utilisation de l'application après que l'administrateur a accepté que l'application puisse être utilisée.

10
Brandon Werner

Essayez de donner la ressource comme ' https://graph.windows.net ' dans la demande de publication.

Ça a marché pour moi.

2
pooja karande

Assurez-vous que vos paramètres Azure AD permettent d'ajouter de telles applications. Il existe quelques propriétés sous Application Azure AD> Gérer> Paramètres utilisateur qui affectent la façon dont l'application est enregistrée. Un membre de votre organisation a peut-être complètement désactivé l'enregistrement de l'application ou limité considérablement les options. Vous pouvez vérifier ces paramètres. Il existe quelques solutions disponibles ici pour cette question.

0
Chamila Maddumage