Keycloak RestAPI:将客户端角色分配给组

时间:2020-09-16 19:57:01

标签: keycloak restapi

我已经尝试过: url =“ https:// {localhost} / auth / admin / realms / {realm_name} / groups / {group_id} / role-mappings” payload = [{“ id”:“ role_id”,“ name”:“ Role_name”,“ composite”:“ false”,“ clientRole”:“ true”,“ containerId”:“ client_id”}]

但是,它不起作用,我认为它可能与错误的有效载荷有关 任何想法请

2 个答案:

答案 0 :(得分:0)

我们可以使用python-keycloak lib:https://pypi.org/project/python-keycloak/ 有一个功能:assign_group_client_roles

答案 1 :(得分:0)

格式正确,但是您确保客户端具有可用的有效角色。 例如,“ HR”组为“ RomoteApp”客户端添加了“平铺限制”角色。

在Keycloak用户界面中,@客户端> RemoteApp>角色

角色名称

time limit

组>小时 客户端角色:RemoteApp 可用角色:时间限制 分配的角色:尚未包括“时间限制”

邮递员(Postman)推荐的POST-由于stan溢出水平低,我无法附加图片 http://127.0.0.1:8080/auth/admin/realms/Test-realm/groups/9efef6bf-7edb-496e-bc0d-a8d4f5f4e3a9/role-mappings/clients/60a19179-f244-42f8-9950-04f2119a4e5b?client=RemoteApp&id=60a19179-f244-42f8-9950-04f2119a4e5b&realm=Test-realm

带有行JSON选项的邮递员正文中(Content-Type:application / json)

[
    {
        "id": "e17f9f7f-62dc-4998-b058-49b845ff5cef",
        "name": "time limit",
        "description": "time limit",
        "composite": false,
        "clientRole": true,
        "containerId": "60a19179-f244-42f8-9950-04f2119a4e5b"
    }
]

组列表

   {
        "id": "9efef6bf-7edb-496e-bc0d-a8d4f5f4e3a9",
        "name": "hr",
        "path": "/hr",
        "subGroups": []
    }

客户列表

    {
        "id": "60a19179-f244-42f8-9950-04f2119a4e5b",
        "clientId": "RemoteApp",
     ...
    }

也不记得令牌端点w / grant_type调用的访问令牌是password

http://127.0.0.1:8080/auth/realms/Test-realm/protocol/openid-connect/token