使用 Keycloak Mapper 将授权权限包含到我的令牌中

Include Authorization Permissions to my token using Keycloak Mapper

我希望 Keycloak (2.3.0.Final) 在 ID 令牌中包含与用户关联的权限。我试图创建一个映射器来映射所有权限,但不幸的是,没有添加这种功能的选项。

有人知道怎么做吗?

感谢朋友,我解决了!

问题是,我想检索有关属于特定客户端的授权信息。在当前版本的 Keycloak (2.3.0.Final) 中,您无法通过令牌检索权限,这是完全合理的。

所以你有 2 个选择:第一个是使用 permission ticket,另一个是使用权利 API。

所以,我正在使用第二种选择:

curl -X GET \
    -H "Authorization: Bearer ${access_token}" \
    "http://localhost:8080/auth/realms/${realm_name}/authz/entitlement/${resource_server_id}"

realm_name,是添加到领域的名称(在 url 中显示),resource_server_id,是在客户端设置中选择的client_id。

此外,第一个备选方案将与 permission ticket 一起使用:

curl -X POST
    -H "Authorization: Bearer ${AAT}" -d '{
    "ticket" : ${PERMISSION_TICKET}
}' "http://localhost:8080/auth/realms/${realm_name}/authz/authorize"

这里有一些有用的链接可以解决这个问题: