我们一直在使用Graph API的日历端点来阅读我们组织所有会议室的当前日历事件(根据我们的应用程序的需要)。
我们的AAD应用程序具有基于证书的委派访问所需的权限设置。
我们能够阅读这些事件但是从上周五开始,当我们尝试命中端点时,我们注意到所有调用都失败并显示拒绝访问错误消息。
示例错误:
"{\r\n \"error\": {\r\n \"code\": \"ErrorAccessDenied\",\r\n \"message\": \"Access is denied. Check credentials and try again.\",\r\n \"innerError\": {\r\n \"request-id\": \"4e86b67f-c790-4622-8c52-5560ada18809\",\r\n \"date\": \"2017-12-20T00:59:42\"\r\n }\r\n }\r\n}"
"{\r\n \"error\": {\r\n \"code\": \"ErrorAccessDenied\",\r\n \"message\": \"Access is denied. Check credentials and try again.\",\r\n \"innerError\": {\r\n \"request-id\": \"43986eec-2b2a-4e0c-b2e6-d5cacfd9e583\",\r\n \"date\": \"2017-12-20T01:15:04\"\r\n }\r\n }\r\n}"
其他信息: 令牌有效载荷数据:
{
"aud": "https://graph.microsoft.com/",
"iss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
"iat": 1513731142,
"nbf": 1513731142,
"exp": 1513735042,
"aio": "<removed>",
"app_displayname": "<removed>",
"appid": "17e23349-efa0-4b31-b04f-c8e16754bcb8",
"appidacr": "2",
"e_exp": 262800,
"idp": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
"oid": "028bc190-3171-4699-90ad-65a0b6cc9d21",
"sub": "028bc190-3171-4699-90ad-65a0b6cc9d21",
"tid": "72f988bf-86f1-41af-91ab-2d7cd011db47",
"uti": "nTP0r5PyPUqQoNS3WmUKAA",
"ver": "1.0"
}
我确实注意到令牌有效负载缺少任何范围,但鉴于它已经提前工作且没有对我们的AAD实例进行任何已知更改,我怀疑这是否是真正的问题,但如果我错过了那里的东西,请告诉我。
我尝试将AAD应用程序切换到另一个应用程序,该应用程序也具有管理员同意的权限设置但是导致了与上述相同的错误。
答案 0 :(得分:0)
由于令牌中没有作用域/角色,因此问题可能是未授予权限。
您可以通过单击“授予权限”按钮来授予租户权限。
您还可以在我的博客中找到有关授权如何工作以及如何调试此类问题的一些信息:https://joonasw.net/view/the-grant-requires-admin-permission