多租户应用SCIM 2.0自定义属性映射与单端点架构咨询
针对Azure AD SCIM 2.0多租户配置的两个问题解答
问题1:将appOwnerTenantId添加为自定义架构的可编辑属性
需从Azure AD配置与SCIM服务端定义两方面配合实现:
- Azure AD端操作:
- 进入目标企业应用的「属性与角色」选项卡,找到用户/组的属性映射区域
- 点击「添加新映射」,选择要关联的资源类型(用户或组)
- 在「目标属性」下拉框中选择「输入自定义属性」,直接填入
appOwnerTenantId作为属性名 - 配置源属性:可选择Azure AD中的租户ID相关属性(比如利用令牌自带的
tid声明,或映射到Azure AD对象的租户上下文ID);若需支持手动编辑,要确保映射设置中标记该属性为可编辑状态 - 保存映射后,该属性会纳入Azure AD的属性编辑范围,也可通过Graph API的
PATCH请求直接更新企业应用的属性映射规则,明确指定appOwnerTenantId为可写属性
- SCIM服务端架构定义:
在服务端的自定义SCIM架构中,必须将appOwnerTenantId字段标记为mutable: true,确保Azure AD的写入请求能被正常处理。示例架构片段:{ "name": "appOwnerTenantId", "type": "string", "mutable": true, "description": "Identifier for the application owner's tenant" }
问题2:单SCIM端点支持多租户,无需专属令牌与同步URL
通过租户感知的请求识别与数据隔离机制实现:
- 令牌层面的租户识别:
让客户使用Azure AD颁发的针对你应用的服务主体令牌,这类令牌自带tid(租户ID)声明。SCIM服务端收到请求时,先解析JWT令牌,提取tid字段作为客户租户的唯一标识,无需为每个客户生成单独令牌 - 统一端点配置:
给所有客户提供同一个SCIM基础URL(如https://your-app.com/scim/v2),无需为每个客户分配专属URL。所有SCIM请求(用户创建、查询、更新等)都通过该端点处理,依赖令牌中的tid区分租户 - 服务端数据隔离:
在SCIM服务端的业务逻辑中,所有资源操作都绑定到解析出的租户ID,确保每个客户只能访问和操作自己租户下的用户、组数据,实现严格的数据隔离 - 简化客户配置:
给客户提供统一配置指引:在Azure AD企业应用中配置SCIM时,使用通用的端点URL,并通过Azure AD生成对应租户的服务主体令牌,无需为每个客户单独配置专属资源
内容的提问来源于stack exchange,提问作者Brijesh Shah
相关产品推荐
相关产品推荐

