SCIM(System for Cross-domain Identity Management)是身份同步的开放标准。它解决的问题很具体:当一个人加入、调岗或离开时,下游应用怎么知道。
先想清楚三态
自动化失败的项目,通常不是协议没接通,而是状态定义含糊。
| 状态 | 触发源 | 期望结果 |
|---|---|---|
| 入职 | HR 建档 | 创建账号、入组、分配应用、发送首登引导 |
| 调岗 | 部门 / 岗位变更 | 重算组关系,回收旧权限,授予新权限 |
| 离职 | HR 离职流程完成 | 停用账号、终止会话、下游应用同步禁用 |
SCIM 做了什么,没做什么
SCIM 负责「用户与组的增删改查」这一层的标准化。它不负责业务判断——谁应该拥有哪个角色,仍然要由组规则或审批流程决定。
因此推荐的链路是:业务事件 → 目录属性变化 → 组规则重算 → SCIM 下发。把业务逻辑放在前面,让 SCIM 只承担传输职责。
四个容易被忽略的细节
- 唯一标识:用稳定的 ID 做匹配键,不要用邮箱。邮箱会变,ID 不会。
- 软删除:多数应用不支持真正删除,只能停用。停用是否等于失去访问权,要逐个验证。
- 失败重试:下游应用会宕机。没有重试与告警的同步任务,等于没有同步。
- 回滚:批量变更前先做一次全量快照,出问题时能退回去。
怎么衡量效果
建议盯两个指标:离职后账号停用的平均耗时(目标:小时级),以及入职开通的人工介入次数(目标:零)。这两个数字比「接入了多少个应用」更能说明问题。