在 REST API 中指定自定义租户 ID

问题描述

在 SOAP Teanant API 中,我可以定义自己的租户 ID (https://docs.wso2.com/display/IS530/Managing+Tenants+with+APIs#ManagingTenantswithAPIs-addTenant()),但在 REST API 中,此功能不可用。我想使用自定义 tenantId 的原因是,我可以将多租户从 WSO2 域映射到我的应用程序域,从而使用 id 作为桥梁。 addTenant 端点的请求 JSON 中有 additonalClaims 元素,但该元素未在 getTenant 端点中返回。是否有额外的租户属性可用于存储自定义信息?

解决方法

租户创建 REST API 不允许输入租户 ID。但是您可以将返回的租户 ID 用于映射目的。 使用 API 成功创建租户后,它应返回 201 Cretaed status 代码,您将能够在响应标头中找到 Location header。位置标头包含租户的位置。 https://<Host>:<port>/t/<tenant-domain>/api/server/v1/tenants/<tenant-id>。您可以从该值中提取租户 ID。

对于问题的第二部分: additonalClaims 属性属于 tenant owners 而不是核心租户对象。当您执行 GET /tenants 或 GET /tenants/ 请求时,返回所有者的 ID 和用户名。

 "owners": [
        {
            "id": "af01d6cf-bf5d-440f-b99c-ac482f6dc89f","username": "kim"
        }
    ]

如果您通过 carbon 控制台/控制台查看租户所有者的个人资料,您应该会看到通过请求添加的附加声明。此外,如果添加的本地声明映射到 SCIM 声明(例如:http://wso2.org/claims/mobile),您将通过 SCIM GET User API 查看该用户属性。

例如:https://<host>:<port>/t/<tenant-domain>/scim2/Users/<tenant-ownser's-id>