SCIM(System for Cross-domain Identity Management)是身份同步的开放标准。它解决的问题很具体:当一个人加入、调岗或离开时,下游应用怎么知道。

先想清楚三态

自动化失败的项目,通常不是协议没接通,而是状态定义含糊。

状态触发源期望结果
入职HR 建档创建账号、入组、分配应用、发送首登引导
调岗部门 / 岗位变更重算组关系,回收旧权限,授予新权限
离职HR 离职流程完成停用账号、终止会话、下游应用同步禁用

SCIM 做了什么,没做什么

SCIM 负责「用户与组的增删改查」这一层的标准化。它不负责业务判断——谁应该拥有哪个角色,仍然要由组规则或审批流程决定。

因此推荐的链路是:业务事件 → 目录属性变化 → 组规则重算 → SCIM 下发。把业务逻辑放在前面,让 SCIM 只承担传输职责。

四个容易被忽略的细节

  • 唯一标识:用稳定的 ID 做匹配键,不要用邮箱。邮箱会变,ID 不会。
  • 软删除:多数应用不支持真正删除,只能停用。停用是否等于失去访问权,要逐个验证。
  • 失败重试:下游应用会宕机。没有重试与告警的同步任务,等于没有同步。
  • 回滚:批量变更前先做一次全量快照,出问题时能退回去。

怎么衡量效果

建议盯两个指标:离职后账号停用的平均耗时(目标:小时级),以及入职开通的人工介入次数(目标:零)。这两个数字比「接入了多少个应用」更能说明问题。

O
Okta 产品团队

关注身份与访问管理,写可落地的方案,不写名词解释。

聊聊你的场景