2017-02-13 10 views
4

jwt.ioを使用することで、私のアプリケーションがMicrosoft Graph APIのために取得するトークンが、Directory.Read.AllとUser.Readのスコープしか含まない:Microsoft Graph APIトークンのスコープがAzureポータルで設定されているスコープと異なる

enter image description here

そして、これは私がこのようなUser.ReadBasic.Allなど多くのスコープを、含まれているAzureのポータルに設定された権限とは異なります。

enter image description here

私はとにかくこれを修正するには?

+0

[Graph Explorer](https://graphexplorer.cloudapp.net)からサービスプリンシパルのグラントを確認してください。 '/ servicePrincipals'の下にアプリのプリンシパルを見つけ、'/servicePrincipals/object-id/oauth2PermissionGrants'をチェックしてください。これにより、どの委任された権限がアプリに対して承認されたかがわかります。 – juunas

+0

@juunasグラフエクスプローラの完全なリクエストリンクを張ることができます、申し訳ありませんが、私はまだマイクロソフトのグラフに新しいです – yfan183

+0

うわー、グラフエクスプローラは今更新されました..したがって、新しいアドレスは実際にはhttps:// graphexplorer .azurewebsites.net /。そこにサインインし、テキストボックスに 'https:// graph.windows.net/myazuread.onmicrosoft.com/servicePrincipals'と入力して、Goを押します。ところで、このエクスプローラはAzure AD Graph API用であり、Microsoft Graph API用ではありません。異なるAPI。しかし、ここでのポイントは、Azure ADでアプリの許可を確認することです。 – juunas

答えて

4

これは、ユーザーが既にログインしてアプリに同意した後で、アプリに戻って追加の権限を追加したときによく見られます。そのユーザーは引き続き「古い」権限を取得しますが、新しいユーザーは新しいセットを取得します。

私の推測が正しいとすれば、当初はDirectory.Read.AllUser.Readのアプリしか登録していなかったはずです。あなたはあなたのユーザーアカウントでログインしました。その後、追加の権限を追加して再試行しました。それは正しいと思いますか?

Azureのv1エンドポイントは、既に同意したユーザーのスコープを動的に更新しないという問題があります。これらのユーザーには「再同意」のエクスペリエンスを強制する必要があります。承認URLにprompt=consentパラメータを追加します。これにより、ユーザーは更新されたアクセス許可リストで同意画面を再度表示する必要があります。

+0

申し訳ありません私はまだこれに新しいです、私はちょうど編集のトークンを取得する私のコードを追加したと私はどこに追加するか分からないコード内の「プロンプト=同意」 – yfan183

+0

まあ、ADALにはいくつかのバージョンがあります。どちらを使用していますか? –

+0

私は2だと思います。14それはNugetのパッケージマネージャーの言う通りです – yfan183

関連する問題