如何更新单个用户';使用WSO2 SCIM REST API创建组而不使用修补程序/组,因为当用户计数较高时会导致超时?

如何更新单个用户';使用WSO2 SCIM REST API创建组而不使用修补程序/组,因为当用户计数较高时会导致超时?,wso2,wso2is,wso2carbon,scim,Wso2,Wso2is,Wso2carbon,Scim,我们正在使用WSO2 SCIM API为用户定义角色并对其进行更新。 对于角色更新操作,我们当前正在添加新用户角色(使用SCIM api将用户添加到新角色组),然后删除现有用户角色(调用用户SCIM获取组下的请求,从列表中删除现有用户,并使用新创建的列表作为主体参数来调用组的SCIM补丁请求)。使用此方法,我们可以更新角色。但随着用户基数的增加,修补操作的上述方法出现超时错误。(新角色将更新为用户,但现有角色将持续存在,因为第二个api将失败) 下面是我尝试过的一个解决方案: 添加新角色,删除用

我们正在使用WSO2 SCIM API为用户定义角色并对其进行更新。 对于角色更新操作,我们当前正在添加新用户角色(使用SCIM api将用户添加到新角色组),然后删除现有用户角色(调用用户SCIM获取组下的请求,从列表中删除现有用户,并使用新创建的列表作为主体参数来调用组的SCIM补丁请求)。使用此方法,我们可以更新角色。但随着用户基数的增加,修补操作的上述方法出现超时错误。(新角色将更新为用户,但现有角色将持续存在,因为第二个api将失败)

下面是我尝试过的一个解决方案:

添加新角色,删除用户详细信息中新创建的角色,并使用更新后的用户角色调用修补程序api。但在进一步调查后发现,用户内部的角色是只读的,无法使用修补程序/放置操作进行更新。因此,我未能获得正确的解决方案


有没有一种方法可以在不使用修补程序/组端点的情况下更新组内单个用户的角色?

正如我在回答中提到的,SCIM规范不允许使用
PATCH/Users/{userId}
更新用户的组属性

另外,
PATCH/Groups/{groupId}
在组成员计数过高时可能会导致性能问题

WSO2 IS在一定程度上提高了
PATCH/Groups/{groupId}
的性能

  • -从5.10.0版开始提供
  • -从5.11.0版开始提供
  • 因此,如果您使用的是较旧版本的IS,请尝试使用最新的GA版本(5.11.0)。它可能会提高性能


    更新:

    您可以使用SCIM
    POST/Bulk
    endpoint通过单个REST调用来更新用户组,而不是使用多个
    PATCH/groups/{groupid}
    调用。 有关批量终结点的更多详细信息,请参阅

    例如: 要将两个组(组1和组2)分配给用户,请使用与以下类似的有效负载执行
    POST https://:/scim2/Bulk

    {
        "Operations": [
            {
                "data": {
                    "Operations": [
                        {
                            "op": "add",
                            "value": {
                                "members": [
                                    {
                                        "display": "anuradha",
                                        "value": "db15b161-a205-454d-9da1-4a2a0df0585e"
                                    }
                                ]
                            }
                        }
                    ]
                },
                "method": "PATCH",
                "path": "/Groups/f707b6cc-91f8-4b8a-97fb-a01c2a79515c"
            },
            {
                "data": {
                    "Operations": [
                        {
                            "op": "add",
                            "value": {
                                "members": [
                                    {
                                        "display": "anuradha",
                                        "value": "db15b161-a205-454d-9da1-4a2a0df0585e"
                                    }
                                ]
                            }
                        }
                    ]
                },
                "method": "PATCH",
                "path": "/Groups/8c91215f-1b7a-4cdb-87d9-ae29c60d70de"
            }
        ],
        "schemas": [
            "urn:ietf:params:scim:api:messages:2.0:BulkRequest"
        ]
    }
    

    感谢您的回答@anuradha。我认为5.11是最新的稳定版本。除此之外,无法找到任何其他解决方案。@Aruns请查看更新的答案。它将对您有所帮助。