无效的受众 URI 错误服务到服务应用程序,onedrive for business

Invalid Audience URI error Service to Service application, onedrive for business

我正在尝试从 Office 365 商业版帐户中检索文件。

此处遵循说明:

https://msdn.microsoft.com/en-us/library/azure/dn645543.aspx

我已经能够为我的应用程序成功获取访问令牌。

但是,当我尝试使用令牌进行 API 调用时,我收到错误消息

"https://[tenant redacted]-my.sharepoint.com/_api/v2.0/drive/ - 401: {"error":"invalid_client","error_description":"Invalid audience Uri 'http:\/\/[redacted]-spreadsheet-test-webapi.[tenant url redacted].com\/'."}

我对共享点 URL 的调用是一个简单的 GET 请求,headers 设置如下:

  headers = {
                'User-Agent' : 'python_tutorial/1.0',
                'Authorization' : 'Bearer {0}'.format(access_token),
                'Accept' : 'application/json',
        }

我已确认我使用的资源 URI 与 Active Directory 配置中的 App ID URI 匹配,并且我已委派适当的共享点权限 (在所有站点中读取和写入项目 collections, 读写用户文件) 到应用程序。

我一直在多次尝试各种 API 端点、不同的 "Resource" 参数值和 re-read 各种文档。

我也可以通过 Graph API 发出请求,但是它没有我需要的功能(access/update 用户 onedrive 中的文件)。

不确定我遗漏了什么,如有任何帮助,我们将不胜感激。

我遇到了同样的问题。

我使用 OneDrive for business API(而不是 office 365 管理 API)到 download\upload 个文件,这意味着您在检索访问令牌时提供的 resource 参数应该是:

https://[tenant redacted]-my.sharepoint.com

请尝试用JWT解码器打开access token(格式为JWT),验证观众(我是用online JWT decoder做的,你看参数在 payload 下是 aud) 就是你所期待的。