You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the flow of SCIM2 PATCH Groups, remove operation behavior should be re-evaluated for the Active Directory when the below SCIM configuration is enabled.
Honoring the MaxUserNameListLength will cause retrieving only a set of users which belongs to the role hence the remove operation might not be a success because in the implementation the remove operation is carried out by comparing the original group members' values with patched group member values[10].
Describe the issue:
In the flow of SCIM2 PATCH Groups, remove operation behavior should be re-evaluated for the Active Directory when the below SCIM configuration is enabled.
When having the above configuration the execution paths are different hence this might cause the remove operation to be unsuccess.
How to reproduce:
The user group association might not be removed as explained in the More Information section.
Expected behavior:
User Group association should be removed without considering the MaxUserNameListLength configuration.
Environment information
More Information
The behavior of config Enabling/Disabling executes is discussed below.
In return_updated_group_in_group_patch_response=false flow,
the user list which belongs to a particular group is retrieved from the user store[1] -> [2] -> [3] -> [4] -> [5].
When retrieving the user, the Maximum User List Length(MaxUserNameListLength) user store configuration is honored[6] -> [7].
[1] https://github.com/wso2-extensions/identity-inbound-provisioning-scim2/blob/v1.5.128/components/org.wso2.carbon.identity.scim2.common/src/main/java/org/wso2/carbon/identity/scim2/common/impl/SCIMUserManager.java#L2372
[2] https://github.com/wso2-extensions/identity-inbound-provisioning-scim2/blob/v1.5.128/components/org.wso2.carbon.identity.scim2.common/src/main/java/org/wso2/carbon/identity/scim2/common/impl/SCIMUserManager.java#L2387
[3] https://github.com/wso2-extensions/identity-inbound-provisioning-scim2/blob/v1.5.128/components/org.wso2.carbon.identity.scim2.common/src/main/java/org/wso2/carbon/identity/scim2/common/impl/SCIMUserManager.java#L3851
[4] https://github.com/wso2-extensions/identity-inbound-provisioning-scim2/blob/v1.5.128/components/org.wso2.carbon.identity.scim2.common/src/main/java/org/wso2/carbon/identity/scim2/common/impl/SCIMUserManager.java#L3857
[5] https://github.com/wso2-extensions/identity-inbound-provisioning-scim2/blob/v1.5.128/components/org.wso2.carbon.identity.scim2.common/src/main/java/org/wso2/carbon/identity/scim2/common/impl/SCIMUserManager.java#L3880
[6] https://github.com/wso2/carbon-kernel/blob/v4.6.2/core/org.wso2.carbon.user.core/src/main/java/org/wso2/carbon/user/core/ldap/UniqueIDActiveDirectoryUserStoreManager.java#L353
[7] https://github.com/wso2/carbon-kernel/blob/v4.6.2/core/org.wso2.carbon.user.core/src/main/java/org/wso2/carbon/user/core/ldap/UniqueIDActiveDirectoryUserStoreManager.java#L406
Honoring the MaxUserNameListLength will cause retrieving only a set of users which belongs to the role hence the remove operation might not be a success because in the implementation the remove operation is carried out by comparing the original group members' values with patched group member values[10].
[10] https://github.com/wso2-extensions/identity-inbound-provisioning-scim2/blob/v1.5.128/components/org.wso2.carbon.identity.scim2.common/src/main/java/org/wso2/carbon/identity/scim2/common/impl/SCIMUserManager.java#L3192
In return_updated_group_in_group_patch_response=true flow,
a user retrieval is not happening. Instead of that, the group is obtained without members[11] and only uses the group Id for the operations.
[11] https://github.com/wso2-extensions/identity-inbound-provisioning-scim2/blob/v1.5.128/components/org.wso2.carbon.identity.scim2.common/src/main/java/org/wso2/carbon/identity/scim2/common/impl/SCIMUserManager.java#L2385
We can use the above approach for the patch operations without retrieving the members of the group.
The text was updated successfully, but these errors were encountered: