如何获得管理员同意同时适用于 Graph API 端点和 Outlook REST 端点?

How to get admin consent working both for Graph API endpoint and Outlook REST endpoint?

objective:获得管理员的一次性同意,可以使用 Graph API 的一些功能和 Outlook REST API 的一些功能来读取所有公司邮箱(网络钩子更高级)

看了微软文档,好像最好的流程是"OAuth 2.0 client credentials grant"。

但是当我检索一个令牌时,将范围更改为 https://outlook.office.com/.default,我得到一个令牌,它被拒绝用于我的查询,带有 401 和 'too weak token with strength 1 instead of 2'。

我们应该在哪里更改范围?或者我应该有另一个授权流程?

谢谢

Outlook 端点需要使用 X509 证书凭据而不是客户端机密获取的令牌,并且它还需要具有适当受众的令牌(JWT 中的 aud 参数)。要获得所有这些,您需要在 Azure 门户(portal.azure.com 或 manage.windowsazure.com)中注册该应用程序,并在应用程序注册清单中上传您的 public 密钥。我在这里有一个示例:https://github.com/jasonjoh/outlook-fetch.

不幸的是,目前无法将特定于 Outlook 的范围添加到应用程序注册门户 (apps.dev.microsoft.com),因此在这种情况下必须使用 Azure 注册方法。