我使用典型的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"
它为什么要这样做,我能做些什么来修复它?
在谷歌上搜索“呼叫主体由于缺乏权限而无法同意”,什么也没有得到。
发布于 2014-09-09 04:06:34
我假设有问题的用户没有权限同意您的client_id(应用程序/网站)所需的权限。
示例
客户端Id为xxxx的网站/应用程序需要以下权限
Sharepoint:“完全控制所有网站集”。
如果非网站集管理员登录,则将返回"AADSTS50020:调用主体由于缺乏权限而无法同意“错误。原因是用户不能同意他们自己无法访问的东西。
这只是一个示例,但对于任何资源的任何权限都应该是正确的。
发布于 2015-05-14 21:51:41
我以前遇到过这个问题,我通过转到你的Azure AD并检查有问题的应用程序是否得到了适当的同意来解决它。您可以找到有关如何执行此here的指南。我希望这能有所帮助。
https://stackoverflow.com/questions/24707612
复制相似问题