我正在努力获取我们现有的服务,该服务使用 ADAL 获取 SharePoint Online REST API 的访问令牌,使用 MSAL / v2.0 auth。我们正在使用不在 Graph API 中的 API,所以这就是我们使用 SPO API 的原因(即https://yourtenant.sharepoint.com/_api/foo)。在 ADAL 中,您使用资源来获取您的令牌,对于租户中任何网站集的任何 API,它始终为https://yourtenant.sharepoint.com 。在切换到 MSAL / v2.0 身份验证时,我还没有找到一个有效的范围 - 这意味着我得到了一个访问令牌,但从来没有正确的权限。在我在 Azure 中的应用注册中,它显示了我们使用的权限范围https://microsoft.sharepoint-df.com/Sites.Read.All。以下是我们尝试过的一些示例:
范围:https : //microsoft.sharepoint-df.com/.default(使用为 v1.0 API 推荐的 .default 范围)结果:“无效的受众 Uri 'https://microsoft.sharepoint-df.com/' .";category="invalid_client"
范围:https ://office365mon.sharepoint.com/.default(使用与 v1.0 的资源 URI 相同的样式)结果:X-MSDAVEXT_Error:917656;访问+拒绝。+之前+打开+文件+in+this+location%2c+you+must+first+browse+to+the+web+site+and+select+the+option+to+login+自动。
范围: https ://microsoft.sharepoint.com/.default(在 sharepoint 上尝试不使用 -df) 结果:“无效的受众 Uri 'https://microsoft.sharepoint.com/'。”;category="invalid_client"
范围: https ://office365mon.sharepoint.com/Sites.Read.All (将其视为 v2.0 范围;还使用 microsoft.sharepoint-df.com/Sites.Read.All 进行了尝试)结果:应用程序' foo' 要求资源 '00000003-0000-0ff1-ce00-000000000000' 上不存在的范围 'Sites.Read.All'。联系应用程序供应商。
我认为这很奇怪的另一件事是,当我使用我认为应该是它的范围时 - https://microsoft.sharepoint-df.com/.default - 当我从授权代码中获取访问令牌时,它返回两个 SCOPES,其中一个根本没有意义。它返回 "https://microsoft.sharepoint-df.com/Mail.ReadWrite https://microsoft.sharepoint-df.com/.default"。SharePoint 没有“Mail.ReadWrite”范围,我们不要求该范围,所以我不禁想知道这是否是与使用它时引发的“无效受众”错误相关的问题的一部分。
所以看看现在是否有任何已知的问题,或者任何已知的工作版本。
谢谢,
史蒂夫