账户同步-应用同步给IDaaS

IDaaS支持作为SCIM Server服务端,通过SCIM协议(System for Cross-domain Identity Management,跨域身份管理系统)与应用进行账户和组数据的同步。SCIM协议旨在规范不同系统间的身份数据共享原则和接口定义,从而提升身份系统之间的互操作性(Interoperability)。

适用范围

  • 已开通应用身份服务(IDaaS)并在EIAM 云身份服务下创建实例。

  • 第三方身份体系支持SCIM协议,并已准备好相关配置信息。

步骤一:创建应用

  1. 登录阿里云IDaaS控制台,单击左侧导航栏的EIAM 云身份服务,在右侧IDaaS下的实例列表中,定位目标实例,单击操作列下的访问控制台

  2. 应用身份服务页面的左侧导航栏中,选择应用管理 > 应用列表,随后在应用列表页面单击添加应用

  3. 根据需求,选择标准协议自研应用,单击添加应用添加自研应用

    说明

    默认仅标准应用和自研应用支持同步到 IDaaS。

  4. 在弹出的对话框中,修改应用名称,单击立即添加,进入应用详情页面。

步骤二:设置账户同步范围

  1. 在应用详情页的顶部页签栏中,选择账户同步,设置同步范围

  2. 在弹出的设置同步范围面板中,选择目标组织

步骤三:设置应用同步到IDaaS参数

  1. 账户同步下,单击应用同步到IDaaS页签,参考以下内容,填写基础配置。

    • 同步目标

      指定无所属组织的 IDaaS 账户在通过 SCIM 导入账户时,自动归属的组织(已有所属组织时不受影响)。仅能选择 IDaaS 同步范围中的组织作为同步目标

    • Bearer Token

      单击添加 Bearer Token,在弹出的设置有效期面板中设置Bearer Token 有效期有效期可选范围为1天至3年。

      Bearer Token是一种安全凭证,持有者可凭借此令牌访问受保护的资源,无需重复提供身份验证信息(如用户名和密码)。其作为一种重要的客户端身份凭证,与 Client ID/Secret 共同用于凭证管理。在配置时,需遵循以下规则:

      • 数量限制:系统最多允许存在两个 Bearer Token

      • 状态要求:必须保持至少一个令牌处于“启用”状态。

      • 删除流程:删除一个令牌前,必须先将其状态设置为“禁用”。

    • SCIM Base URL

      SCIM 接口的地址,提供给 SCIM Client 调用。

    • 开放接口权限

      通过 SCIM 同步数据到 IDaaS时,需在API 开放中开放SCIM API 接口权限,以供应用调用。

      1. 单击前往授权,进入API 开放页面。

      2. 在页面顶部,单击API 开放后的image,然后在弹出的启用提示面板中,单击确认启用

      3. SCIM API 接口权限区域,选择所有功能场景,然后单击保存

  2. 填写高级配置。

    以上配置仅支持基础字段同步至IDaaS,若需同步更多字段,可通过高级配置将其同步至IDaaS的扩展字段中。单击应用同步到IDaaS下的显示高级配置,设置如下参数。

    • 自定义字段Namespace:指定Namespace,必须和第三方系统中的Namespace保持一致。

      • Okta:建议填写urn:ietf:params:scim:schemas:extension:customfield:2.0:User

      • Microsoft Entra ID(Azure AD):建议填写urn:ietf:params:scim:schemas:extension:${CustomExtensionName}:2.0:User,其中${CustomExtensionName}为变量,请根据实际情况进行调整。

    • 同步目标字段:选择需要同步的目标字段(仅支持扩展字段),支持选择多个。如需设置扩展字段可参考创建扩展字段

  3. 完成上述配置后,单击保存即可

支持同步的基础字段

User:

SCIM字段

IDaaS字段

说明

id

userId

用户唯一ID

userName

username

用户名

displayName

displayName

用户显示名称

phoneNumbers [type eq "work"]

phoneNumber

手机号

若手机号带区号,前面必须加"+"

仅支持一个phoneNumber的存储,且type=work

phoneRegion

phoneRegion

手机号区号

若不填且手机号带区号则截取手机号中的区号;

若填写,且该字段与手机号中的区号不一致,则报错;

若不填且手机号未包含区号,则默认"86"

emails [type eq "work"]

email

仅支持一个email的存储,且type=work

externalId

userExternalId

外部ID

active

status

用户状态

active=true时,statusenabled

active=false时,statusdisabled

password

password

密码,明文。若格式不正确则报错

urn:ietf:params:scim:schemas:extension:enterprise:2.0:User

  • organization

-

-

organizationId

账户所属组织的ID。

若无值,则账户放在同步目标下

若有值,则账户放在该组织下

Group:

SCIM字段

IDaaS字段

说明

id

groupId

组唯一ID

displayName

groupName

组名称

externalId

groupExternalId

组外部ID

members

  • type

  • value

  • $ref

-

组成员

-

组成员类型,只支持User

userId

用户唯一ID

-

成员资源的完整URL

生产环境使用建议

最佳实践

  • Bearer Token 管理:启用轮换机制,定期更新 Token,避免长期暴露单一凭证。

  • 同步范围最小化:仅开放必要组织与组,降低误同步风险。

  • 监控同步状态:关注 API 调用频率与失败日志,及时发现异常行为。

容错与安全

  • 禁止删除最后一个启用的 Token,否则会导致同步中断。

  • 字段一致性校验:确保外部系统发送的 phoneNumbersemails 类型正确,否则同步失败。

  • 幂等性保障:重复提交相同用户数据应视为更新而非新建。

相关文档