我正在使用典型的OAuth 2流程,并派出人员对O365样本中显示的模式进行身份验证:
https://login.windows.net/common/oauth2/authorize?response_type=code&client_id={0}&resource={1}&redirect_uri={2}&state={3}
通常,当用户跟踪指向该网站的链接时,它会要求他们登录,但不要求他们向该应用授予权限,而是将其重定向回我们的网站:
error: access_denied
error_description: "AADSTS50020: Calling principal cannot consent due to lack of permissions.\r\nTrace ID: fb1d1e6a-d339-4cba-9c99-b53b50e921a5\r\nCorrelation ID: ac7ef3f1-e8eb-4b0a-b413-e186faf2892c\r\nTimestamp: 2014-07-11 22:11:27Z"
为什么要这样做,我该怎么做才能解决它?
谷歌搜索“由于缺乏权限而致电委托人不能同意”没有提出任何建议。
答案 0 :(得分:1)
我认为相关用户无权同意您的client_id(应用/网站)所需的权限。
示例
客户ID为xxxx的网站/应用需要以下权限
Sharepoint:“完全控制所有网站集。”
如果非网站集管理员登录,则会返回“AADSTS50020:由于缺少权限而无法同意调用主体”错误。原因是用户无法同意他们自己无法访问的内容。
这只是一个示例,但对于任何资源的任何权限都应该为真。
答案 1 :(得分:0)
之前我遇到过此问题,我通过转到您的Azure AD并检查相关应用是否具有相应的同意来解决此问题。您可以找到有关如何执行此操作的指南here。 我希望有所帮助。