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

时间:2016-10-27 16:45:01

标签: redhat keycloak keycloak-services

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

有人知道怎么做吗?

1 个答案:

答案 0 :(得分:2)

感谢朋友,我解决了这个问题!

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

所以你有2个选择:第一个使用permission ticket,另一个使用Entitlement 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"

以下是解决此问题的一些有用链接: