2016-07-01 9 views
4

Ich versuche, eine einfache Ruby-Anwendung zu erstellen, die eine Verbindung mit der Microsoft Graph-API herstellen und grundlegende Informationen über den Benutzer abrufen kann, z. B. den Manager oder direkte Berichte.Microsoft Graph scopes v2 oauth

Ich habe ein 0365-Tutorial verfolgt und ich habe eine funktionierende App, die die Mail eines Benutzers erhalten kann. Allerdings, wenn ich versuche, um dann die Session-Token zu verwenden, um die grafische Darstellung api abzufragen, erhalte ich eine Fehlermeldung:

response.body 
=> "{\r\n \"error\": {\r\n \"code\": \"InvalidAuthenticationToken\",\r\n \"message\": \"Access token validation failure.\",\r\n \"innerError\": {\r\n  \"request-id\": \"18cbc6be-5254-400c-9780-7427376587fb\",\r\n  \"date\": \"2016-06-30T22:21:55\"\r\n }\r\n }\r\n}" 

Ich verwende Tive

SCOPES = [ 'openid', 'profile', 'https://outlook.office.com/contacts.read', 'offline_access' ] 

Ich habe gerade den Umfang aufzunehmen vorgeschlagen ‚https://graph.microsoft.com/user.read‘, aber wenn ich fügen Sie diese an die Anwendung ich die folgende Fehlermeldung erhalten, noch bevor der Benutzer Login-Seite schlagen:

AADSTS70011: The provided value for the input parameter 'scope' is not valid. The scope openid profile offline_access https://graph.microsoft.com/user.read is not valid. 

Jede Hilfe zu diesem Thema würde geschätzt!

+0

Können Sie die vollständige URL posten, die Sie für den Zugriff auf die Anmeldeseite verwenden? –

+0

https://login.microsoftonline.com – Lievcin

+0

Ich meine mit allen Parametern :). Sie können es aus dem Browser kopieren, wenn Sie auf dem Fehler landen. –

Antwort

7

Ok. Das Problem besteht darin, dass Sie Bereiche für Outlook (den Bereich https://outlook.office.com/contacts.read) und Graph (den Bereich https://graph.microsoft.com/user.read) einschließen. Leider unterstützt der Autorisierungsendpunkt von Azure das Mischen solcher Bereiche nicht. Sie können den Outlook-Bereich entweder entfernen (vorausgesetzt, Sie benötigen ihn nicht) oder in den entsprechenden Graphen ändern: https://graph.microsoft.com/contacts.read (wenn Sie auf die persönlichen Kontakte des angemeldeten Benutzers zugreifen müssen).

+0

Vielen Dank Jason. Ich kann jetzt mindestens/ich :) – Lievcin

+0

Wenn ich versuche, die direkten Berichte zu erhalten, bekomme ich eine Fehlermeldung: code: Authorization_RequestDenied, Nachricht: Unzureichende Berechtigungen, um den Vorgang abzuschließen. "Weißt du, ob es eine Ressource mit den Bereichen und ob einige von ihnen nur für Administratoren zugänglich sind? – Lievcin

+0

Es sieht so aus, als hätten die Graph-Dokumente einen Fehler. Der Link für direkte Berichte besagt, dass User.Read funktioniert, aber http://graph.microsoft.io/en-us/docs/ authorization/permission_scopes sagt mit User.Read, dass man "Navigationseigenschaften wie Manager und direkte Berichte" nicht lesen kann. Lass mich die Graphen Leute fragen, was los ist. –