Keycloak 直接访问授权在 keycloak userinfo 端点上无效

Posted

技术标签:

【中文标题】Keycloak 直接访问授权在 keycloak userinfo 端点上无效【英文标题】:Keycloak Direct Access Grant not valid at keycloak userinfo endpoint 【发布时间】:2021-08-04 14:09:46 【问题描述】:

我正在尝试为使用 Keycloak 进行授权的 API 编写测试。

我可以使用 grant_type 密码从测试脚本以编程方式登录到 keycloak,并且 keycloak 会以令牌响应。

当 API 尝试使用 Keycloak 用户信息端点验证该令牌时,我得到一个 403 Token Authorization Error

如果我通过 Web 客户端手动登录 Keycloak,则相同的 API 验证功能适用于同一用户。我检查了 API 中间件,它收到的令牌与 keycloak 生成的令牌相同。

【问题讨论】:

【参考方案1】:

我猜你的领域客户端没有用户管理权限。请按照以下步骤重试。

    以管理员身份使用 keycloak Web 客户端登录 选择领域 > 客户端 > 选择客户端 在客户端设置中将Service Accounts Enabled设置为ON并保存。 然后你会看到新标签Service Account Roles选择那个。 从Client Roles 下拉列表中选择realm-management。 添加manage-users权限

【讨论】:

以上是关于Keycloak 直接访问授权在 keycloak userinfo 端点上无效的主要内容,如果未能解决你的问题,请参考以下文章

Keycloak 授权服务 - 动态资源和资源属性

如何使用邮递员从 keycloak 获取访问令牌(授权码流)

Keycloak 授权 - 最佳实践角色与组

在 Keycloak 中禁用刷新令牌

Keycloak 问题无法在仅承载模式下交换代码以获得授权

撤销 Keycloak 访问令牌