Keycloak 包括对访问令牌的权限以及角色
Keycloak include permission into the access token along with the roles
我一直致力于使用 keycloak 设置授权,并根据资源设置了特定的角色和权限,但 JWT 访问令牌仅包含有关角色的详细信息,而不包含分配给用户的权限。
我希望访问令牌包含权限详细信息并尝试了 Keycloak 文档中的方法:
1) 使用权限票不能生成使用
的票
http://${host}:${port}/auth/realms/${realm_name}/authz/protection/permission
显示:
{
"error": "invalid_bearer_token",
"error_description": "Could not obtain bearer access_token from request."
}
因此无法生成 RPT 和获取权限的详细信息。
也尝试过使用授权 API。
2) 使用权利 API:
curl -X GET \
-H "Authorization: Bearer ${access_token}" \
"http://localhost:8080/auth/realms/hello-world-authz/authz/entitlement/${resource_server_id}"
我尝试使用邮递员,它显示 404 Not Found..
谁能告诉我在访问令牌中包含权限或正确生成 RPT 的正确过程。
Keycloak 为授权服务提供了一个发现文档。可以从以下url.
获取
curl -X GET http://localhost:8080/auth/realms/{realm}/.well-known/uma2-configuration -H "Authorization: Bearer ${access_token}"
这里 localhost 和 8080 是 keycloak 主机和端口
错误说您使用的令牌对客户端无效。
我可以使用下面的命令
获得RPT
curl -X POST http://localhost:8080/auth/realms/${realm}/protocol/openid-connect/token -H "Authorization: Bearer ${access_token}" --data "grant_type=urn:ietf:params:oauth:grant-type:uma-ticket" --data "audience={resource_server_client_id}" --data "permission=Resource#Scope"
Keycloak 使用 RPT 响应客户端
我一直致力于使用 keycloak 设置授权,并根据资源设置了特定的角色和权限,但 JWT 访问令牌仅包含有关角色的详细信息,而不包含分配给用户的权限。
我希望访问令牌包含权限详细信息并尝试了 Keycloak 文档中的方法: 1) 使用权限票不能生成使用
的票http://${host}:${port}/auth/realms/${realm_name}/authz/protection/permission
显示:
{
"error": "invalid_bearer_token",
"error_description": "Could not obtain bearer access_token from request."
}
因此无法生成 RPT 和获取权限的详细信息。
也尝试过使用授权 API。
2) 使用权利 API:
curl -X GET \
-H "Authorization: Bearer ${access_token}" \
"http://localhost:8080/auth/realms/hello-world-authz/authz/entitlement/${resource_server_id}"
我尝试使用邮递员,它显示 404 Not Found..
谁能告诉我在访问令牌中包含权限或正确生成 RPT 的正确过程。
Keycloak 为授权服务提供了一个发现文档。可以从以下url.
获取curl -X GET http://localhost:8080/auth/realms/{realm}/.well-known/uma2-configuration -H "Authorization: Bearer ${access_token}"
这里 localhost 和 8080 是 keycloak 主机和端口
错误说您使用的令牌对客户端无效。
我可以使用下面的命令
获得RPT
curl -X POST http://localhost:8080/auth/realms/${realm}/protocol/openid-connect/token -H "Authorization: Bearer ${access_token}" --data "grant_type=urn:ietf:params:oauth:grant-type:uma-ticket" --data "audience={resource_server_client_id}" --data "permission=Resource#Scope"
Keycloak 使用 RPT 响应客户端