我正在尝试使用邮递员从Azure B2C实例取回访问令牌。
我一直在关注如何执行此操作的Microsoft文档(https://docs.microsoft.com/en-us/azure/active-directory-b2c/access-tokens),但是在碰到/ token端点时始终出现以下错误-
{
"error": "invalid_grant",
"error_description": "AADB2C90205: This application does not have sufficient permissions against this web resource to perform the operation.\r\nCorrelation ID: 544ba4c7-08e3-4206-9957-3783fa0240e4\r\nTimestamp: 2020-11-06 15:29:17Z\r\n"
}
就像在文档中一样,我进行了两次网络调用,第一个是到授权端点以获取所需的代码。
我采用了上面生成的URL,并将其粘贴到浏览器中。这将带我到登录屏幕,并以我创建的B2C中的测试用户身份登录。这将在浏览器URL中返回代码。到目前为止,这似乎是预期的。
然后,我使用浏览器中的代码对/ token端点进行以下调用。提出有关“无效的grant_type”和权限不足的请求时,我总是收到在此文章开头发布的错误。应该给我一个访问令牌。
此问题的搜索结果使我相信,这与范围有关。
我认为,应通过阅读文档,使用应用程序注册右上方列出的应用程序ID URI声明范围。我在Auth和Token调用上使用了相同的作用域。我认为应该可以使用以下两个选项之一,但是我尝试了多种不同的版本,给出了完全相同的权限错误。
https://.onmicrosoft.com//openid https://.onmicrosoft.com//openid offline_access
我不知道在API权限页面中是否还需要执行其他操作才能使其正常工作?
真的很感谢在这里尝试提供的任何帮助,因为我已经多次提出相同的建议了。
答案 0 :(得分:0)
请求URL中提供的范围必须具有openid offline_access
。您可以通过使用邮递员更新必填字段来使用以下查询
POST https://XXXX.b2clogin.com/XXXX.onmicrosoft.com/B2C_1_susisignin/oauth2/v2.0/token?
grant_type=authorization_code
&client_id=f209c17f-b0b2-4954-XXXX
&scope=https://XXXX.onmicrosoft.com/api/read openid offline_access
&redirect_uri=https://jwt.ms
&code=
&client_secret=5f4Xd34Y8XX
当您在openid offline_access
范围内没有至少一个权限的情况下发出请求时,它将失败,并出现如下所示的特权问题。
在Scope section的末尾看到文档时,提到如果至少授予一个许可,则调用成功。
答案 1 :(得分:0)