4. 身份源与目录集成

在云IAM体系中,身份源决定了“谁可以被识别、以什么属性被识别、由谁负责认证”。如果把云平台比作一座需要门禁的建筑,身份源就是发卡中心与人员档案库。云目录、企业IdP、SCIM、SAML/OIDC联邦与身份同步,分别承担了“身份存储、认证委托、自动开户、跨域信任、持续对齐”五类职责。理解它们的分工与协作,是设计可扩展、可审计、低运维成本身份体系的基础。

一、身份源的五种角色与协作关系

云目录(如AWS IAM Identity Center、Azure AD、Google Cloud Identity)是云侧原生身份存储,适合直接管理云用户、组与权限集。企业IdP(如Okta、Microsoft Entra ID、Keycloak、AD FS)是组织已有的权威认证中心,通常承载员工主数据、MFA策略与登录审计。SCIM是用户与组的自动同步协议,解决“入职/离职/转岗时账号是否及时开通与回收”的问题。SAML与OIDC是联邦认证协议,解决“用户不在云侧存密码,而是由企业IdP完成认证后颁发断言”的问题。身份同步则是把IdP中的用户、组、属性持续映射到云目录或应用中的过程。

这五者并非互斥,而是常组合使用:企业IdP作为权威源,通过SAML/OIDC完成登录联邦,通过SCIM完成账号生命周期同步,云目录则作为云侧权限承载点。下图展示了这一协作关系与数据流向。

企业 IdP Okta / Entra ID / Keycloak 权威认证 · MFA · 登录审计 用户主数据 · 组属性 云目录 IAM Identity Center / Cloud Identity 权限集 · 角色绑定 云侧身份映射 云上应用 / 资源 S3 / EC2 / K8s / SaaS 按角色或权限集访问 用户 / 员工 浏览器 / CLI / 控制台 发起登录请求 SAML / OIDC 联邦 SCIM 2.0 同步 登录认证 权限下发 携带断言访问 联邦认证 SCIM 同步 权限下发 用户访问

二、SAML与OIDC:联邦认证的两种主流协议

SAML 2.0基于XML,通过IdP生成签名断言(Assertion),SP(云平台)验证签名后建立会话。典型流程是:用户访问云控制台 → 云平台重定向到IdP → IdP完成认证并返回SAML Response → 云平台校验签名、受众、时间戳后放行。SAML适合企业级Web SSO,属性丰富,但XML处理较重。

OIDC构建在OAuth 2.0之上,使用JSON格式的ID Token(JWT),更轻量,天然适合移动端与API场景。OIDC的授权码流程中,云平台作为RP(Relying Party)向IdP请求授权码,再用授权码换取ID Token与Access Token。ID Token中的sub、email、groups等声明可用于身份映射。

选择建议:若企业已有AD FS或传统SAML IdP,优先SAML;若面向现代SaaS、移动端或需要API级联邦,优先OIDC。两者可并存,但同一应用应避免混用导致会话与审计割裂。

三、SCIM:让账号生命周期自动化

SCIM 2.0定义了/Users与/Groups两个核心资源端点,通过HTTP的POST、PATCH、DELETE实现增删改。典型同步逻辑是:HR系统触发入职 → IdP创建用户 → IdP通过SCIM向云目录推送用户 → 云目录按组规则分配权限集。离职时反向执行:IdP禁用用户 → SCIM发送PATCH将active置为false → 云目录撤销会话与权限。

关键配置参数包括:SCIM端点URL、Bearer Token、属性映射(如userName→email、groups→displayName)、同步频率与冲突策略。建议将同步频率设为5~15分钟,并对active、groups、emails三个字段做重点校验。

四、身份同步的映射与冲突处理

身份同步的核心是“属性映射”与“权威源判定”。常见映射表如下:

IdP属性 云目录属性 用途 冲突策略
userNameUserName登录标识以IdP为准
emails[0].valueEmail通知与找回以IdP为准
groupsGroups权限集分配合并,云侧只读
activeActive账号启停以IdP为准
departmentDepartment标签与审计以IdP为准

冲突处理原则:身份标识与启停状态以IdP为权威源;云侧仅保留权限集绑定关系,不反向修改IdP。若出现同名不同人,应使用externalId或employeeNumber作为稳定唯一键,避免以邮箱作为唯一标识。

五、实操示例:以Entra ID + AWS IAM Identity Center为例

假设企业使用Entra ID作为IdP,AWS IAM Identity Center作为云目录。配置步骤如下:

  1. 在Entra ID中创建企业应用“AWS IAM Identity Center”,配置SAML SSO,下载元数据。
  2. 在IAM Identity Center中启用外部IdP,上传元数据,完成SAML信任。
  3. 在Entra ID中开启SCIM自动预配,填入IAM Identity Center提供的SCIM端点与Bearer Token。
  4. 配置属性映射:userPrincipalName→userName,mail→emails[0].value,department→department。
  5. 在IAM Identity Center中创建权限集(如ReadOnlyAccess、PowerUserAccess),并绑定到Entra ID同步过来的组。
  6. 测试:在Entra ID中新增用户并加入组,等待SCIM同步后,在IAM Identity Center中确认用户与权限集已生效;再禁用该用户,确认云侧会话被撤销。
验证要点:登录联邦是否成功,看SAML Response中的Audience与Recipient是否匹配;SCIM是否生效,看云目录中用户的active、groups是否与IdP一致;权限是否收敛,看用户实际获得的权限集是否仅来自其所属组。
常见排障:若SAML登录报“Invalid signature”,检查IdP证书是否过期或元数据未更新;若SCIM同步报“409 Conflict”,检查唯一键是否重复;若用户已禁用但仍能访问,检查云侧会话是否未撤销或存在本地缓存凭证。

身份源与目录集成的目标,是让“人”的变化自动、准确、可审计地反映到“权限”上。企业IdP负责认证与主数据,SCIM负责生命周期同步,SAML/OIDC负责跨域信任,云目录负责权限承载。四者各司其职,才能避免账号孤岛、权限残留与审计断链。