当前位置: 首页 > 知识库问答 >
问题:

OneDrive/SharePoint OAuth 无效受众错误

高明辉
2023-03-14

我的目标是编写一些代码,使 Office 365 用户能够通过 REST API 访问 OneDrive for Business 中的文件。我已经在 Azure AD 中注册了一个应用程序(Web 应用/多租户),并添加了联机访问 SharePoint 的权限。我想使用“具有 OAuth 的委派用户标识”方案,其中我的应用使用用户模拟通过 REST API 访问 OneDrive for Business。

应用程序清单中的权限如下所示:

“oauth2Permissions”:[{”adminConsentDescription“:”允许应用程序代表已登录用户访问AppName。“,”adminConcentDisplayName“:”AppName“,”id“:”xxx“,”isEnabled“:true,”origin“:”application“,“type”:“user”,”userConsentDesignation“:”让应用程序代表您访问AppName“。”,“userConsentDisplayName:”AppName”,“value”:”user_impersonation“}

该应用程序请求(OneDrive For Business)用户登录Office365以获取授权代码(发送到注册的重定向URL),并使用它检索访问令牌(通过POST到我的应用程序的令牌endpoint)。返回的JWT中的“aud”字段设置为我的客户端ID。对于SharePoint Online,它应该是类似于“0000000 3-0000-0ff1-ce00-00000000000”的内容吗?

当我尝试在https://{ tenant }-my . SharePoint . com/_ API/v 1.0/me/使用访问令牌作为请求头中的载体发出GET时,我得到一个错误401:“错误:无效客户端”,“错误:无效受众URI:https://{ tenant }-my . SharePoint . com/”。这指向某处的配置错误,但我不知道需要更改什么。

共有1个答案

谢洛城
2023-03-14

aud = 令牌的受众。将令牌颁发给客户端应用程序时,受众是客户端的client_id。你可能想要尝试使用发现服务 API 来检查服务终结点 (https://msdn.microsoft.com/en-us/office/office365/howto/discover-service-endpoints)。错误显示受众 URI 无效,因此服务可能未在要调用的 URL 上运行(即 https://{tenant}-my.sharepoint.com/_api/v1.0/me/)。点击上面的链接应该可以帮助您隔离问题。我希望这有所帮助。

 类似资料:
  • 在错误=我正在获取“消息”的上下文中需要帮助:“Access token validation Failure.Invalid Pavior.”, 我正在使用OAuth中的授权代码授予类型。我已经使用Azure广告策略将自定义声明映射到应用程序。因此,如果用户Scope=appid/.default,那么我将在令牌中获得一个自定义声明,并在Azure AD上对应用程序具有API权限,如user.r

  • 引言 对于网站用户分析, SiteMonitor V5 支持从网站访客使用的设备,操作系统,客户端(如浏览器、App)等角度进行分析挖掘,同时也支持统计网站访客的地域分布; 设备相关信息的获取 在HTTP 传输协议中,其Header部分包含了user-agent ( 用户代理 ) 信息,它对所访问的网站提供了用户所使用的浏览器类型及版本,操作系统及版本,浏览器内核,用户移动设备等信息; 通过这些信

  • 我使用ASP开发了UI和Web API。具有Azure AD身份验证的net Core 2.1。两者都已在Azure应用程序注册中注册。我正在UI中使用以下代码。但我遇到了一个未经授权的错误。 开始p.cs 我正在获取访问令牌。当我在jwt登记时。io,上面写着“签名已验证”。但API调用会给出未经授权的响应状态代码。当我检查响应头时,它的信息是“{承载错误=“无效的\u令牌”,错误描述=“受众无

  • null null “AADSTS28000:为输入参数scope提供的值无效,因为它包含多个资源。scope api://{API-application-id}/a-scope https://graph.microsoft.com/user。Read openid配置文件无效。” 这里,我们的后端是一个资源,它有一个作用域,“https://graph.microsoft.com”是另一个作

  • 我想验证用户输入的日期是否有效,格式是否正确。我使用这个块来检查用户的输入,但是当我输入一个无效的日期时,打印语句会给我奇怪的输出。 当是时,它打印