我希望 Keycloak (2.3.0.Final) 在 ID 令牌中包含与用户关联的权限。我试图创建一个映射器来映射所有权限,但不幸的是,没有添加这种功能的选项。
有人知道怎么做这个吗?
我希望 Keycloak (2.3.0.Final) 在 ID 令牌中包含与用户关联的权限。我试图创建一个映射器来映射所有权限,但不幸的是,没有添加这种功能的选项。
有人知道怎么做这个吗?
感谢一位朋友,我解决了这个问题!
问题是,我想检索属于特定客户端的授权信息。在当前版本的 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"
这里有一些有用的链接来解决这个问题: