0

J'ai créé l'application dans apps.dev.microsoft.com. J'utilise https://login.microsoftonline.com/common/oauth2/v2.0/authorize pour le code d'autorisation et https://login.microsoftonline.com/common/oauth2/v2.0/token pour l'accès et l'actualisation des jetons. Je reçois l'accès avec succès jeton, mais quand je suis en train de lire le signé dans les données de profil de l'utilisateur il me donne l'erreur:API Mirosoft Graph donne des privilèges non pris en charge erreur

Array (
    [error] => Array 
     (
      [code] => Authorization_RequestDenied 
      [message] => Insufficient privileges to complete the operation. 
      [innerError] => Array 
       (
        [request-id] => 02269b14-2cf9-458e-b9d6-2aec1a23cee3 
        [date] => 2017-02-23T16:30:44 
       ) 

     ) 

) 

Quand j'utiliser l'identifiant d'origine avec lequel l'application a été créée cette erreur n » t montrer. Mais quand j'utilise un autre identifiant en dehors de ma location, cette erreur apparaît. Quelqu'un peut-il suggérer une solution de contournement pour cela?

Répondre

1

Basé sur le preview post, que vous utilisiez la demande comme ci-dessous pour acquérir le jeton:

GET:https://login.microsoftonline.com/common/oauth2/v2.0/authorize?response_type=code&client_id={clientId}&scope=openid%20profile&redirect_uri={redirectURL} 

Dans cette demande, vous utilisiez le champ (openid,profile) qui ne serait pas retourner le access_token pour en utilisant le Microsoft Graph REST. Le champ profile renvoie uniquement les informations utilisateur dans le id_token au lieu de vous accorder l'autorisation d'accéder aux informations utilisateur via Microsoft Graph REST.

Si vous souhaitez utiliser le Microsoft Graph REST, nous devons ajouter la portée comme https://graph.microsoft.com/user.Read (plus de portée sur la lecture des informations utilisateur s'il vous plaît se référer here). Et voici une demande d'échantillon pour votre référence pour permettre d'accéder au profil de l'utilisateur via https://graph.microsoft.com/v1.0/me:

GET:https://login.microsoftonline.com/common/oauth2/v2.0/authorize?response_type=code&client_id={clientId}&scope=https://graph.microsoft.com/user.Read%20openid%20profile&redirect_uri={redirectURL} 

Et s'il vous plaît noter que le access_token est différent avec id_token. Nous devons effectuer la demande pour la ressource (Microsoft Graph) en utilisant le access_token. Le id_token est uniquement utilisé pour valider l'identité de l'utilisateur pour le client. En savoir plus sur le concept de client et de ressource que vous pouvez consulter here.

S'il vous plaît laissez-moi savoir si cela aide.