目标:获得管理员的一次性同意,能够使用Graph API的一些功能读取所有公司邮箱,以及一些Outlook REST API(webhooks更高级)
阅读Microsoft文档,似乎最好的流程是" OAuth 2.0客户端凭据授予"。
https://login.microsoftonline.com/common/adminconsent?client_id=XXX&redirect_uri=XXX
。然后我使用https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
grant_type=client_credentials&client_id=XX&client_secret=XX&scope=https://graph.microsoft.com/.default
返回令牌。一切都与Microsoft Graph完美配合。
但是当我检索一个令牌,将范围更改为https://outlook.office.com/.default
时,我得到一个令牌,该令牌因我的查询而被拒绝,其中401和一个“弱”令牌的强度为1而不是2&# 39;
我们应该在哪里更改范围?或者我应该有另一个授权流程吗?
由于
答案 0 :(得分:0)
Outlook端点需要使用X509证书凭据获取的令牌,而不是客户端密钥,并且还需要具有适当受众的令牌(JWT中的aud
参数)。要获得所有这些,您需要在Azure门户(portal.azure.com或manage.windowsazure.com)中注册该应用程序,并在应用程序注册清单中上传您的公钥。我在这里有一个示例:https://github.com/jasonjoh/outlook-fetch。
不幸的是,由于它现在没有办法将特定于Outlook的范围添加到App注册门户(apps.dev.microsoft.com),因此在这种情况下需要Azure注册方法。