2. 身份数据模型与权威源

在IAM自动化治理中,所有策略编排、权限审批、访问复核和风险分析,最终都依赖一套清晰、稳定、可追溯的身份数据模型。如果模型定义模糊,自动化流程就会在“谁是谁、谁属于谁、谁可以访问什么”这些基本问题上反复出错。本节围绕五类核心对象——用户、组、角色、权限、资源——说明如何建模,并进一步讨论HR、AD、云目录等权威源的识别与数据流设计。

一、五类核心对象的建模要点

用户(User)是身份主体,通常对应一个自然人。建模时需要区分“身份标识”和“身份属性”:身份标识是全局唯一的键,例如员工号、AD的objectGUID、云平台的UserId;身份属性则包括姓名、部门、岗位、邮箱、雇佣状态、入职日期、离职日期等。关键原则是:标识一旦分配不再复用,属性随权威源变化而更新,但历史值应保留审计痕迹。

组(Group)是用户的集合,用于批量授权和简化管理。组建模要明确三件事:组的类型(安全组、邮件组、项目组)、成员来源(手工维护还是规则自动同步)、以及组与权限的绑定关系。实践中建议区分“组织型组”(按部门/团队)和“功能型组”(按职责/项目),避免一个组同时承担两种语义。

角色(Role)是权限的集合,代表一类职责。角色与组的区别在于:组回答“谁和谁在一起”,角色回答“能做什么”。角色建模应遵循最小权限和职责分离原则,例如“财务审批员”角色只包含审批相关权限,不包含付款执行权限。角色可以分配给用户,也可以分配给组,但必须明确分配路径,避免多重继承导致权限膨胀。

权限(Permission)是对资源执行特定操作的权利,通常表示为“操作+资源类型+约束条件”。例如“读取S3存储桶”“创建EC2实例”“审批金额小于10万元的报销单”。权限建模的关键是粒度:过粗会导致权限过大,过细会导致角色数量爆炸。建议以“业务可理解的最小单元”为粒度,并记录权限的风险等级。

资源(Resource)是被访问的对象,包括应用系统、数据库、云服务、文件目录、API等。资源建模需要唯一标识、所属系统、敏感级别、负责人等字段。资源与权限的关系是“多对多”:一个资源可被多种权限操作,一种权限可作用于多个资源。

二、权威源识别:谁说了算

权威源(Authoritative Source)是指某个身份属性最可信、最原始的数据来源。在多数企业中,HR系统是员工身份和雇佣状态的权威源,AD/LDAP是账号和认证凭据的权威源,云目录(如Azure AD、阿里云RAM)是云上身份和联邦关系的权威源。识别权威源的核心方法是逐属性追问:“这个字段最初在哪里产生?谁有权修改?其他系统是复制还是自建?”

常见误区是把多个系统都当作权威源,导致同一属性出现冲突。例如员工部门在HR和AD中不一致时,必须明确以HR为准,AD只做同步。另一个误区是忽略“生命周期权威源”:入职、转岗、离职事件应由HR触发,而不是由各系统自行判断。

三、数据流设计:从权威源到消费系统

数据流设计的核心是“单向同步、事件驱动、可追溯”。以HR为权威源为例,典型链路是:HR产生入职/转岗/离职事件 → 集成层(如SCIM、消息队列、ETL)接收并转换 → 身份治理平台更新用户属性 → 向下游AD、云目录、业务系统同步账号和组关系 → 各系统返回同步结果 → 治理平台记录审计日志。

设计时需要明确几个关键参数:同步频率(实时事件还是批量T+1)、冲突解决策略(以权威源覆盖还是人工仲裁)、失败重试机制(重试次数、告警阈值)、以及删除策略(离职后禁用还是删除,保留多久)。这些参数直接决定自动化治理的可靠性和合规性。

身份数据模型与权威源数据流 权威源层 HR系统 员工/部门/雇佣状态 AD / LDAP 账号/认证凭据 云目录 云身份/联邦关系 业务系统 应用本地账号 集成与转换层 SCIM / 消息队列 属性映射与清洗 冲突检测与仲裁 身份治理平台 用户模型 组模型 角色模型 权限模型 资源模型 消费与审计层 下游系统同步 访问审批与复核 审计日志与报表 审计反馈

四、建模落地中的关键判断

在实际项目中,模型设计往往需要在“标准化”和“兼容现状”之间取舍。一个可操作的判断方法是:先定义最小可用模型(用户+组+角色+权限+资源五张核心表),再通过映射层兼容各系统的差异字段。例如AD的“memberOf”可以映射为组关系,云平台的“Policy”可以映射为权限集合。映射关系必须显式记录,不能隐式推断。

另一个关键点是生命周期状态机。用户至少应有“待入职、在职、转岗中、离职中、已离职”五种状态,每种状态触发不同的下游动作。例如“离职中”应立即禁用认证凭据,但保留数据访问权限直到交接完成;“已离职”则触发账号删除或归档。状态转换必须由权威源事件驱动,而不是人工在多个系统分别操作。

实践提示:在数据流设计中,建议为每个权威源属性标注“权威级别”和“同步方向”。例如员工号:HR为权威,单向同步到AD和云目录;邮箱:HR为权威,但允许AD本地别名;云平台角色分配:云目录为权威,不回写HR。这样可以在冲突发生时快速定位以谁为准。

五、一个可参考的建模示例

假设某企业以HR为人员权威源,AD为认证权威源,Azure AD为云目录。数据流可以设计为:HR每日增量推送员工变更事件到集成平台;集成平台将员工号、部门、岗位、雇佣状态映射到治理平台的用户模型;治理平台根据部门自动关联组织型组,根据岗位自动分配基础角色;角色展开为权限集合,权限绑定到具体资源;最后通过SCIM将账号和组同步到AD和Azure AD。整个过程记录同步批次、成功数、失败数和冲突数,失败记录进入人工处理队列。

这套模型的价值在于:当员工转岗时,只需在HR修改部门,数据流会自动更新组关系、角色和权限,无需在多个系统重复操作;当员工离职时,HR状态变更触发禁用和回收流程,审计日志完整记录每一步。模型不是静态的表格,而是驱动自动化治理的骨架。