Azure active directory 即使在成功授权之后,directoryRoles也会返回被拒绝的授权请求。用于后续重试

Azure active directory 即使在成功授权之后,directoryRoles也会返回被拒绝的授权请求。用于后续重试,azure-active-directory,microsoft-graph-api,Azure Active Directory,Microsoft Graph Api,我的应用程序通过Microsoft Graph访问目录角色资源。这是在管理员使用所需范围授权我的客户后立即执行的 通常,此流工作正常,对/directoryRoles的调用返回成功响应。但是,我的应用程序会间歇性地收到以下错误: { 'error': { 'innerError': {'date': '2020-02-18T20:06:49', 'request-id': <request_id>}, 'message': 'Insufficient privi

我的应用程序通过Microsoft Graph访问
目录角色
资源。这是在管理员使用所需范围授权我的客户后立即执行的

通常,此流工作正常,对
/directoryRoles
的调用返回成功响应。但是,我的应用程序会间歇性地收到以下错误:

{
  'error': {
    'innerError': {'date': '2020-02-18T20:06:49', 'request-id': <request_id>}, 
    'message': 'Insufficient privileges to complete the operation.', 
    'code': u'Authorization_RequestDenied'
  }
}
{
“错误”:{
'innerError':{'date':'2020-02-18T20:06:49','request id':},
“消息”:“权限不足,无法完成操作。”,
“代码”:u“授权\请求被拒绝”
}
}
即使管理员提供了必要的授权,也会发生这种情况。我还注意到,在这种情况下,在一段时间后重试(比如一两分钟)会返回成功响应

  • 这是否意味着在O365/Azure端记录管理员对该资源的授权可能需要一些随机的时间(最多一到两分钟)
  • 这种行为还有其他解释吗
  • 在这种情况下,重试API是唯一的解决方案吗
  • 你还有其他建议吗

  • 非常感谢您提供的帮助我理解这些间歇性错误的见解。

    根据租户的大小和当前负载,Azure AD有时可能需要一两分钟来传播您的应用程序的同意。这是正常的,您应该重试该请求。

    我已经尝试过了,效果很好,您是否检查了
    应用程序权限
    ,即
    RoleManagement.Read.Directory,Directory.Read.All,RoleManagement.ReadWrite.Directory,Directory.ReadWrite.All
    谢谢Marc。我们添加了重试逻辑,我们将密切关注此问题的再次出现。我们与一个拥有大量账户的承租人有过类似的经历。正如你所说,租户规模可能会在我们所经历的延迟中发挥作用。