MS Graph API: invalid token d'authentification
Je suis en train d'utiliser le Microsoft Graph API pour interroger un Outlook/O365 boîte aux lettres les messages. Je enregistré mon app dans le portail Azure et reçu les informations nécessaires à la requête de l'API. L'application a la Mail.Read
autorisation. (Je n'ai pas accès au portail Azure, on m'a dit qu'il a été créé de cette façon.) Quand je reçois mon jeton OAuth au point de terminaison, mais il ne fonctionne pas dans tous les appels suivants. Je suis à l'aide de Python demandes du module pour tester maintenant.
Pourquoi est-ce appelle l'échec? Il me semble que je suis de passage tous les renseignements exacts, mais je suis clairement en manque de quelque chose.
Je suis le jeton à l'exécution d'une POST
sur:
https://login.microsoftonline.com/my.domain/oauth2/token
Je passe les paramètres nécessaires:
data = {'grant_type': 'client_credentials', 'client_id': CLIENTID, 'client_secret': SECRET, 'resource': APPURI}
et je reçois une réponse comme celle-ci:
{
'resource': 'APPURI',
'expires_in': '3599',
'ext_expires_in': '3600',
'access_token': 'TOKENHERE',
'expires_on': '1466179206',
'not_before': '1466175306',
'token_type': 'Bearer'
}
J'essaie d'utiliser ce jeton, cependant, et il ne fonctionne pas pour rien que je l'appel. Je suis de passage comme un en-tête:
h = {'Authorization': 'Bearer ' + TOKEN}
Je suis à l'appel de cette URL:
url = 'https://graph.microsoft.com/v1.0/users/[email protected]/messages'
Précisément, j'utilise ceci:
r = requests.get(url, headers=h)
La réponse est un 401:
{
'error': {
'innerError': {
'date': '2016-06-17T15:06:30',
'request-id': '[I assume this should be removed for privacy]'
},
'code': 'InvalidAuthenticationToken',
'message': 'Access token validation failure.'
}
}
OriginalL'auteur vaindil | 2016-06-17
Vous devez vous connecter pour publier un commentaire.
dans votre demande de connexion, le paramètre de ressource doit être https://graph.microsoft.com
OriginalL'auteur user2641043
Je pense que vous devrez vous enregistrer app à partir d'ici "https://apps.dev.microsoft.com" au lieu de partir du Portail Azure.
OriginalL'auteur Xiaomin Wu
Sauf si vous êtes un aide Informations D'Identification Du Client, vous ne pouvez pas accéder aux messages d'un autre compte de la boîte aux lettres. Assurez-vous que
[email protected]
est le même compte que vous êtes authentifié et que cette adresse est également userPrincipalName pour le compte.Vous pouvez également utiliser une procédure simplifiée d'URI pour demander vos messages et en contournant la détermination du compte
userPrincipalName
en utilisant/me
. Dans ce cas, leGET
demande seraithttps://graph.microsoft.com/v1.0/me/messages
Cela va fonctionner, mais vous aurez besoin pour obtenir un jeton à l'aide de cette boîte aux lettres d'informations d'identification ou d'utiliser un compte disposant de privilèges d'administration.
J'espère que c'est bon pour le dos de de cette. Nous ne pouvons pas comprendre où pour générer les informations d'identification du compte; ne pouvez pas vous connecter au portail car il n'est pas un compte d'administrateur. Où en serions-nous faire?
Des informations d'une application créée dans le URL fournie dans l'autre réponse par Xiaoming est de retour cette oauth au point de terminaison:
Application 'IDHERE' is not supported for this API version.
ne Doit pas être la bonne façon de le faire.Laissez-nous continuer cette discussion dans le chat.
OriginalL'auteur Marc LaFleur
Cela semble être le cas, que les jetons émis à partir de la v1 d'extrémité ne sont pas valides pour au moins certains des requêtes avec MS Graph API.
Au lieu d'essayer de récupérer le jeton forme de la v2 d'extrémité en appelant
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
.Dans le cas où vous travaillez avec de l'oidc les documents de découverte, vous trouverez celui de v2 à
https://login.microsoftonline.com/{tenant}/v2.0/.well-known/openid-configuration
OriginalL'auteur Raphael Z
Il est intéressant de noter que même si MS Azure de la documentation ne précise pas la nécessité de l'inscription de la ressource, je n'ai jamais pu obtenir de travailler sans inscription la ressource.
https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-client-creds.
Il y a un document complémentaire à spécifier à deux pattes Auth pour MS Graphique qui utilise en fait la "ressource" dans l'exemple.
https://developer.microsoft.com/en-us/graph/docs/authorization/app_only
De chasse!
OriginalL'auteur Yvan Aquino