将用户添加到 WSO2 租户 returns 401 未经授权

Adding user to WSO2 tenant returns 401 Unathorized

我正在尝试将用户添加到租户。为此,我做了以下事情:

  1. 在 WSO2 实例中创建租户
  2. 根据租户服务提供商的客户端密钥和机密生成访问令牌
  3. 使用生成的令牌执行端点https://localhost:9443/t/carbon.super/{tenantId}/api/server/v1/scims2/Users,其中tenantId是租户的id。

执行端点后,我收到错误 401 Unauthorized。知道我做错了什么吗?

我不确定它是否相关,但我注意到当我从主 WSO2 实例(不是租户)生成访问令牌时,我得到了这些范围

"scope": "internal_list_tenants internal_user_mgt_create"

但是,当我使用相同范围的租户客户端密钥和密码生成类似令牌时,我只看到

 "scope": "internal_user_mgt_create"

我想这很好,因为 createUser 只需要这个范围,但 401 可能是由于无法获得 internal_list_tenants 所需的租户范围?

不正确的 URL 是 401 响应的原因。 在这里,您使用的 URL (https://localhost:9443/t/carbon.super/{tenantId}/api/server/v1/scims2/Users) 不正确。

为了在名为 abc.com 的租户中创建用户,您需要调用端点

https://localhost:9443/t/abc.com/scim2/Users

一般来说,如果要在租户中创建用户,端点是:

https://<host>:<port>/t/<tenant-domain>/scim2/Users

如果URL中没有指定租户,则认为是超级租户(carbon.super)(https://<host>:<port>/scim2/Users等于https://<host>:<port>/t/carbon.super/scim2/Users)。

"scope": "internal_user_mgt_create" 足以成功执行用户创建 rest API。如果缺少所需的 scope/permissions,您将收到 403 回复。