Office365 Rest API 401“受众声明值无效”

时间:2018-07-26 17:27:44

标签: oauth-2.0 outlook office365

我有一个能够成功刷新的Microsoft令牌,但是当我尝试进行在授权范围之一内的基本调用时,我得到401。调用是:https://outlook.office365.com/api/v2.0/me,在这里是服务器返回的详细信息:

https://outlook.office365.com/api/v2.0/me> @ request =#@request_headers = {“ Authorization” =>“ Bearer MYTOKENGOESHERE”,“ Accept” =>“ application / json”, “ User-Agent” =>“ Faraday”,“ client-request-id” =>“ 221e4530-9075-11e8-abc0-186590cf8dc9”,“ return-client-request-id” =>“ true”} @ ssl = #@ response =#@ response_headers = {“服务器” =>“ Microsoft-IIS / 10.0”,“ request-id” =>“ 7624eddb-b6ab-42ca-beff-c1132f64ded9”,“ client-request-id” => “ 221e4530-9075-11e8-abc0-186590cf8dc9”,“ x-calculatedbetarget” =>“ BY1PR15MB0055.NAMPRD15.PROD.OUTLOOK.COM”,“ x-backendhttpstatus” =>“ 401”,“ x-rum-validated” = >“ 1”,“ x-ms-diagnostics” =>“ 2000003; reason = \”受众声明值无效'https://graph.microsoft.com'。\“; error_category = \” invalid_resource \“”,“ x- besku“ =>” Gen8“,” x-diaginfo“ =>” BY1PR15MB0055“,” x-beserver“ =>” BY1PR15MB0055“,” x-powered-by“ =>” ASP.NET“,” x-feserver“ =>“ BYAPR01CA0019”,“ www-authenticate” =>“承载client_id = \” MYIDGOESHERE \“,trusted_issuers = \” 00000001-0000-0000-c000-000000000000 @ * \“,token_types = \” app_asserted_user_v1 service_as serted_app_v1 \“,authorization_uri = \” https://login.windows.net/common/oauth2/authorize \“,error = \” invalid_token \“,Basic Realm = \” \“,Basic Realm = \” \“”,“ date” =>“ Thu,26 2018年7月01:42:26 GMT“,”连接“ =>”关闭“,”内容长度“ =>” 0“} @ status = 401 >>

我现在有许多用户使用相同的代码途径就很好了,但是有几个用户遇到了这个问题,这使我认为这最终是某个配置问题,但是错误消息并未告诉我们很多...请帮助

1 个答案:

答案 0 :(得分:1)

出于安全原因,Microsoft内部范围的内部管理已更改。我们使用的是Microsoft Graph范围,例如Mail.Read,但我们使用它们来访问Outlook.com端点。直到上周才允许这样做,但是现在不再允许了。

解决方法是在https://outlook.office.com前面添加前缀,以便新的作用域为https://outlook.office.com/Mail.Read,并且Outlook REST API端点上允许使用此范围格式。请注意不要混淆图形和Outlook范围,因为看起来您无法获得可以同时用于这两个API的单个令牌。