如何使用 WSO2 SCIM 2.0 REST API 更新单个用户的组?
How to update a single user's groups with WSO2 SCIM 2.0 REST API?
我正在尝试用一组全新的组替换单个用户的组。我可以使用 https://docs.wso2.com/display/IS570/apidocs/SCIM2-endpoints/#!/operations#GroupsEndpoint#patchGroup API.
将用户添加到组并从组中删除用户
但是,我想用一个新数组完全替换这些组,这样我就不必从每个组中单独 add/remove 用户。我尝试使用以下请求
POST {url}/scim2/Users/{groupID}
具有以下 POST 正文
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations": [
{
"op": "replace",
"value": {
"groups": [
{
"display": "group1",
"value": "092555e8-1636-4642-924e-27aef49757fe"
},
{
"display": "group2",
"value": "b0d42429-67e2-4447-9846-2b001add431f"
}
]
}
}
]
}
然而,返回的响应是
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:Error"
],
"detail": "Error in performing the add operation",
"status": "500"
}
我怎样才能做到这一点?
POST {url}/scim2/Users/{groupID}
这样的端点不存在。您可能必须坚持使用 /Groups PATCH
操作来添加或删除用户的角色。 (在这种情况下以编程方式迭代请求。)
POST {url}/scim2/Users/{groupID}
请求将无效,因为没有这样的端点。我认为您试图通过补丁操作替换用户资源的 groups
属性。如果是这样,请求将是 PATCH {url}/scim2/Users/{userId}
。
但是,由于以下原因,这不起作用。
根据 SCIM 规范(参见 https://www.rfc-editor.org/rfc/rfc7643#section-4.1.2 中的组描述)用户的组属性应使用 /Groups 端点进行管理。
直接组成员资格表示用户与组直接关联,应该表示客户端可以通过“组”资源修改成员资格。
此外,用户资源的组属性也是 ReadOnly
属性。因此,无法使用 PATCH /User
端点对其进行修改。 (https://www.rfc-editor.org/rfc/rfc7643#section-8.7.1) Schema definition in WSO2 IS: https://github.com/wso2/charon/blob/f5229c1ed55548d74b833e1a04656ac695899d9b/modules/charon-core/src/main/java/org/wso2/charon3/core/schema/SCIMSchemaDefinitions.java#L791
因此您必须使用 PATCH /Groups
端点来修改用户的组详细信息。
我正在尝试用一组全新的组替换单个用户的组。我可以使用 https://docs.wso2.com/display/IS570/apidocs/SCIM2-endpoints/#!/operations#GroupsEndpoint#patchGroup API.
将用户添加到组并从组中删除用户但是,我想用一个新数组完全替换这些组,这样我就不必从每个组中单独 add/remove 用户。我尝试使用以下请求
POST {url}/scim2/Users/{groupID}
具有以下 POST 正文
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations": [
{
"op": "replace",
"value": {
"groups": [
{
"display": "group1",
"value": "092555e8-1636-4642-924e-27aef49757fe"
},
{
"display": "group2",
"value": "b0d42429-67e2-4447-9846-2b001add431f"
}
]
}
}
]
}
然而,返回的响应是
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:Error"
],
"detail": "Error in performing the add operation",
"status": "500"
}
我怎样才能做到这一点?
POST {url}/scim2/Users/{groupID}
这样的端点不存在。您可能必须坚持使用 /Groups PATCH
操作来添加或删除用户的角色。 (在这种情况下以编程方式迭代请求。)
POST {url}/scim2/Users/{groupID}
请求将无效,因为没有这样的端点。我认为您试图通过补丁操作替换用户资源的 groups
属性。如果是这样,请求将是 PATCH {url}/scim2/Users/{userId}
。
但是,由于以下原因,这不起作用。
根据 SCIM 规范(参见 https://www.rfc-editor.org/rfc/rfc7643#section-4.1.2 中的组描述)用户的组属性应使用 /Groups 端点进行管理。
直接组成员资格表示用户与组直接关联,应该表示客户端可以通过“组”资源修改成员资格。
此外,用户资源的组属性也是
ReadOnly
属性。因此,无法使用PATCH /User
端点对其进行修改。 (https://www.rfc-editor.org/rfc/rfc7643#section-8.7.1) Schema definition in WSO2 IS: https://github.com/wso2/charon/blob/f5229c1ed55548d74b833e1a04656ac695899d9b/modules/charon-core/src/main/java/org/wso2/charon3/core/schema/SCIMSchemaDefinitions.java#L791
因此您必须使用 PATCH /Groups
端点来修改用户的组详细信息。