我真的希望有人可以帮我解决一些我没有接受的许可问题。 我目前正在开发一个具有Azure Active Directory访问权限的Web应用程序。到目前为止一切正常。 我尝试实现从组到角色的转换,这对于一些测试来说效果很好。 但现在 - 我没有改变任何权限,我总是收到:
“:{”code“:”Authorization_RequestDenied“,”message“:{”lang“:”en“,”value“:”没有足够的权限来完成操作。“},”
有时这是 requestId 和 date ,有时不是。
触发此权限问题的代码是:
var adClient = Instance.GetADClient(tenantID, signedInUserID, userObjectID);
var pagedCollection = await adClient.Users.GetByObjectId(userObjectID).MemberOf.ExecuteAsync();
如果我尝试使用
,也会发生同样的情况GetMemberGroupsAsync()
因此无论何种类型,检索成员似乎都是一个许可问题。
任何人都知道我错过了什么或者我如何进一步调试它?
非常非常感谢任何想法!
汤姆
答案 0 :(得分:1)
此错误表示您尚未请求或同意授予您的应用程序访问这些API的权限。
注册应用程序时,必须定义应用程序对其调用的API所需的权限。在这种情况下,如果您要调用AAD Graph API,则必须请求某些范围,您可以找到here。
为您需要调用的API选择适当的范围后,您需要确保同意您的应用程序,这最终允许您的应用程序实际执行请求访问的内容。
请注意,某些范围明确要求租户的管理员同意。
如果您要调试与权限相关的问题,一个好的起点就是解码您的访问令牌,并查看scp
声明,其中包含已授予您的应用程序的作用域。我通常使用this site来解码访问令牌。
如果您在令牌中看到了正在尝试进行的API调用的正确范围,那么您应该好好去!如果这有帮助,请告诉我。
答案 1 :(得分:1)