目的:、管理者の1時間の同意がすべての会社のメールボックスを読むことができるようになるグラフAPIのいくつかの機能を使用して、およびOutlookのREST APIの一部(ウェブフックはもっと進んでいる)グラフAPIエンドポイントとOutlook RESTエンドポイントの両方の管理者同意を得るにはどうすればよいですか?
マイクロソフトのドキュメントを読むと、最適なフローは「OAuth 2.0クライアントの資格認定」と思われます。
- 私のアプリはapps.microsoft.comで作成され、スコープはすべてのメールボックスにアクセスするように定義されています。
- 管理者は
https://login.microsoftonline.com/common/adminconsent?client_id=XXX&redirect_uri=XXX
に接続します。 それから私は、トークンが返され
grant_type=client_credentials&client_id=XX&client_secret=XX&scope=https://graph.microsoft.com/.default
で
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
にトークンを取得します。すべてがMicrosoft Graphで完全に機能します。
しかし、私はhttps://outlook.office.com/.default
にスコープを変更し、トークンを取得するとき、私は「強さ1の代わりに、2と弱すぎるトークン」401として、私のクエリのために拒否されたトークンを取得。
ここでスコープを変更する必要がありますか?または、別の認証フローが必要ですか?
おかげ
これを私の側でテストしましょう。物事はアプリのポータルで変更されていると私はあなたに現在の情報を伝えていることを確認したい:) –
いくつかの講義の後、私はプロトコルがOutlook REST APIのために異なることがわかった:それはJWTトークンを作成するX509証明書が必要です。これは大丈夫です(トークンが弱すぎるのではなく、「不正なアクセス」ではありません)。問題が発生しました:Outlook API用のApp Authorizationを付与する必要があります.apps.dev.microsoft.comポータルからはできません(グラフスコープのみ)、apps.dev.microsoft.comを通じて作成された「App URI ID」がアプリケーションにないため、クライアントmanage.windowsazureポータルから認証を更新できません(マニフェストによる手動更新は – Sybic2001