首页 > 解决方案 > WSO2 SCIM2.0 API GET USERS 空结果

问题描述

我已经配置了ldap 只读用户存储,我可以在使用管理面板时看到来自这个美国的用户。但是当我尝试调用SCIM 2.0 API来获取用户时,我总是得到一个空的结果。可能是什么问题?

要求:

GET https://wso2:9443/scim2/Users/?domain=mydomain

回复:

    {
      "totalResults": 0,
      "startIndex": 1,
      "itemsPerPage": 0,
      "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:ListResponse"
      ]
    }

标签: wso2wso2is

解决方案


为用户存储启用 SCIM

首先,请确保您已为该用户存储启用 scim。默认情况下,未为 ReadOnly LDAP 用户存储启用 scim。通过在 deployment.toml 文件中添加以下配置,您可以启用 scim。

[user_store]
scim_enabled = true

如果添加上述配置后问题仍然存在,请验证以下声明映射。

为用户 ID 声明配置映射属性。

对于 SCIM,我们需要一个唯一的 ID 让每个用户单独识别。当您在启用 SCIM 的用户存储上从 WSO2 IS 创建用户时,我们会为新用户创建一个随机 ID 并存储在映射到“ scimId ”属性的“ http://wso2.org/claims/userid ”声明中。

我假设您已经使用一组现有用户插入了只读 LDAP 用户存储。因此,您可能在此特定用户存储中没有“scimId”属性的值。这可能是这个问题的根本原因。所以这个用户可能没有scimId,因此没有任何唯一的用户 ID

核实

  1. 声明 > 列表 > “ http://wso2.org/claims ”。
  2. 转到名为“用户 ID”的声明的编辑视图 默认情况下为此声明启用支持。
  3. 现在转到列表用户页面并查看属于 LDAP 用户存储的用户的配置文件
  4. 请检查属性“用户 ID”是否有值。
  5. 或者,您可以直接从 ReadOnlyLDAP 端 检查是否有为“ http://wso2.org/claims/userid ”映射的任何值在此处输入图像描述

如果您有上述问题,(“ http://wso2.org/claims/userid ”声明没有任何映射属性),

解决方案

  1. 从 ReadOnly LDAP 用户存储中查找现有用户中唯一的唯一属性
  2. 您可以进入上述声明编辑页面,点击“Mapped Attribute(s)*”下的“Add Attribute Mapping”。 在此处输入图像描述
  3. 然后选择用户存储域,输入唯一属性名称并更新。
  4. 检查现在用户配置文件的用户 ID 属性是否不为空。

推荐阅读