0

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

有人知道怎么做这个吗?

4

1 回答 1

2

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

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

所以你有两个选择:第一个是使用权限票,另一个是通过 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。

此外,第一个替代方案将与许可票一起使用:

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

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

于 2016-11-08T01:44:19.683 回答