我想在Keycloak上创建一个客户端,在运行curl API时定义了参数。在定义的参数中,我想向客户端添加“view_users”角色,该角色位于标题为“realm-management”的“Client Roles”中。我想用curl API重现此操作:Adding the "view_users" roleThe role "view_users" is assigned
目前,创建客户端的API请求如下所示:
curl --location --request POST "http://$ip:8180/auth/admin/realms/$realm/clients" \
--header 'Content-Type: application/json' \
-H "Authorization: bearer $TOKEN" \
--data-raw '{
"clientId": "test",
"enabled": true,
"consentRequired": false,
"protocol": "openid-connect",
"standardFlowEnabled": true,
"implicitFlowEnabled": false,
"directAccessGrantsEnabled": false,
"serviceAccountsEnabled": true,
"authorizationServicesEnabled": true,
"rootUrl": "http://localhost:8180/test"
}'
在“data-raw”中可能缺少一个字段,用于将“realm-management”客户端的“view_users”角色分配给我的测试客户端。您能帮助我找到此字段吗?或者您能建议一个替代解决方案吗?
提前感谢您的回答!
1条答案
按热度按时间9jyewag01#
无法在客户端创建时设置
view_users
角色。它可以在创建后通过单独的API(客户端角色Map)进行分配
此API需要三项。
演示步骤
我正在使用Keycloak
v18.0.2
,curl
,jq
和git bash terminal
,Windows 10
(It在linux中也没有问题)
因此,所有捕获的图像都将遵循
curl
命令。步骤3和7是关键步骤
我将演示
curl
的所有API调用#1设置{凭证、客户端名称、域名}
#2获取主令牌
更多细节在这里
#3创建客户端
#4获取{service-account-user-id}
#5获取{realm-management-client-id}
#6获取{view_user_role_id}
#7为客户端分配
view-users
角色#8确认
最后可以通过curl或者UI来确认