2016-07-01 19 views
4

Microsoft Graph APIに接続して、マネージャや直接レポートなどのユーザーに関する基本情報を取得できる、単純なRubyアプリケーションを構築しようとしています。Microsoft Graphスコープv2 oauth

私は0365チュートリアルに従いました。ユーザーのメールを受け取ることができる作業用アプリケーションがあります。しかし、私は、グラフAPIを照会するセッショントークンを使用しようとすると、私はエラーを取得:

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}" 

私はスコープに

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

を使用しています、私はちょうど範囲を含めることが示唆されてきました「https://graph.microsoft.com/user.read」、しかし、私はしても、ユーザーのログインページを打つ前に、次のエラーを取得するアプリケーションにこれを追加するとき:この上の任意の助けをいただければ幸いです

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. 

+0

ログインページにアクセスするために使用している完全なURLを投稿できますか? –

+0

https://login.microsoftonline.com – Lievcin

+0

私はすべてのパラメータを意味:)。エラー発生時にブラウザからコピーすることができます。 –

答えて

7

[OK]をクリックします。問題は、あなたがOutlook(https://outlook.office.com/contacts.readスコープ)とグラフ(https://graph.microsoft.com/user.readスコープ)の両方のためのスコープを含めていることです。残念ながら、Azureの認証エンドポイントは、そのようなスコープの混在をサポートしていません。 https://graph.microsoft.com/contacts.readを(ユーザーの個人用連絡先にログインしてアクセスする必要がある場合):あなたは(あなたがそれを必要としないと仮定した場合)、Outlookのスコープを削除するか、グラフと同等に変更することができます。

+0

ありがとうございましたJason。私は今少なくとも/私を行うことができます:) – Lievcin

+0

私は、直接のレポートを取得しようとするとエラーが表示されます:コード:Authorization_RequestDenied、メッセージ:操作を完了するための不十分な特権 "あなたは、それらのいくつかは、管理者のみがアクセスしているかどうか? – Lievcin

+0

これは、グラフのドキュメントが間違いを持っ​​ているように、直接レポートのリンクはUser.Readが動作すると言う。見えますが、http://graph.microsoft.io/en-us/docs/権限/ permission_scopesはUser.Readで「マネージャや直接レポートのようなナビゲーションプロパティ」を読むことはできません。グラフの人に何が起こっているのか聞いてみましょう –

関連する問題