我们为各种环境提供多个Azure帐户。我能够在我们用于预生产和开发的帐户上创建架构扩展,但对于我们的生产Azure帐户,即使设置完全相同,我也无法创建架构扩展。
与我们的其他帐户一样,我使用全局管理员的OAuth 2.0令牌,并使用有效负载向https://graph.windows.net/ourinstance.onmicrosoft.com/applications/ourmultitenantappId/extensionProperties?api-version=1.6发送HTTP POST:
{
"name": "SA",
"dataType": "String",
"targetObjects": [
"User"
]
}
图表API返回HTTP 403 Forbidden with Authorization_RequestDenied错误消息。
我确实验证了我正在使用的用户帐户具有全局管理员访问权限角色,我在旧Azure门户和新Azure门户中创建了多个全局管理员用户帐户,我比较了生产Azure之间的所有用户和多租户应用设置帐户和预生产Azure帐户,并已对清单进行了比较,但无济于事。
我已经完成了所有这些检查至少5次。我不知道为什么我一直收到Authorization_RequestDenied错误消息。
我可能错过了什么?
答案 0 :(得分:0)
据我所知,有两种403
错误。
第一个就是完成操作的权限不足。对于此问题,请确保该应用具有Directory.ReadWrite.All
权限。
第二个错误就像对象的大小已超出其限制。请减少值的数量并重试您的请求。如果应用程序尝试为已设置100个扩展属性值的对象设置其他扩展属性的值,则会发生此错误。目前,没有解决此问题的方法,请检查是否存在未使用的架构扩展和未注册扩展。
答案 1 :(得分:0)
通过Microsoft支持解决了问题。
虽然事实上我添加了UI中所需的权限,但事实证明OAuth令牌没有必要的权限。我必须使用$scope.$apply()