第4章:统一身份架构设计——三种核心模式

好,咱们进入正题。统一身份架构怎么搭?说白了,就三种主流模式:Hub-and-Spoke、联邦代理、目录同步。我这些年做过的项目,基本没跳出过这个框架。你把这三种吃透了,多云身份这块地基就算打牢了。

核心观点:没有银弹。三种模式各有适用场景,很多时候是组合使用。别想着一种模式打天下。

4.1 Hub-and-Spoke 模型——中心化管控

这是最直观的模式。一个中心节点(Hub)连接所有云(Spoke)。所有身份策略、权限定义都在 Hub 上完成,然后下发到各个云。

我最早接触这个模式是在一个跨国企业项目里。他们用了 Azure AD 做 Hub,连了 AWS、GCP、还有几个自建 IDP。说实话,刚开始挺爽的——一个地方配完,全同步。

架构要点

  • Hub:统一身份源,负责认证、授权、审计
  • Spoke:各云平台,只做执行,不做决策
  • 连接:通过 OIDC/SAML 建立信任关系

我的经验:Hub 一定要做高可用。我曾经见过一个项目,Hub 挂了,所有云都登不进去。那场面,运维直接炸锅。至少两个 Region 做 Active-Active。

适用场景

场景 推荐度 原因
企业统一管控 ★★★★★ 合规要求高,审计集中
多云初创 ★★★☆☆ 初期好用,规模大了有瓶颈
跨国多 Region ★★☆☆☆ 延迟问题,Hub 可能成为单点

4.2 联邦代理模式——去中心化信任

这个模式有意思。没有中心节点,每个云都是对等的。通过联邦协议(比如 SAML、OIDC、SCIM)互相建立信任。

你想想看,如果每个云都直接信任其他云,那 N 个云就需要 N*(N-1)/2 个信任关系。嗯,数学上不太优雅。所以实际落地时,通常会引入一个「代理层」来管理这些信任关系。

避坑指南:我曾经在一个项目里直接做了全互联的联邦,结果 8 个云配了 28 个信任关系。每次改策略都要改 28 个地方。后来老老实实加了代理层,世界清净了。

代理层核心职责

  1. 协议转换:SAML ↔ OIDC ↔ WS-Fed
  2. 令牌中转:不同云之间的 格式转换
  3. 策略缓存:减少跨云调用延迟
// 代理层核心逻辑示例(伪代码)
function federateToken(sourceToken, targetCloud) {
  // 1. 验证源 
  let identity = verifyToken(sourceToken);
  
  // 2. 查找信任策略
  let policy = trustStore.getPolicy(sourceToken.issuer, targetCloud);
  
  // 3. 转换令牌格式
  let targetToken = tokenTransformer.transform(
    identity, 
    targetCloud.tokenFormat,
    policy.claimsMapping
  );
  
  // 4. 签发新令牌
  return signToken(targetToken, targetCloud.audience);
}

4.3 目录同步模式——数据层面的统一

这个模式最实在。不搞复杂的信任关系,直接把用户目录同步到各个云。每个云都有自己的用户库,但数据源只有一个。

我习惯把这种模式叫做「数据联邦」。用户信息从主目录(比如 LDAP、HR 系统)同步到各个云目录。同步工具嘛,SCIM 协议是标配。

同步策略对比

策略 延迟 一致性 带宽消耗
全量同步 高(小时级) 强 高
增量同步 低(分钟级) 最终一致 低
事件驱动 实时 强 中

我的建议:别用全量同步。我见过一个 10 万用户的目录,全量同步跑了 3 小时,中间还断了两次。增量同步 + 定期全量校验,这才是生产级的做法。

4.4 三种模式对比与选择

好了,三种模式都讲完了。怎么选?我画了张图,你看一眼就明白了。

统一身份架构模式对比 Hub-and-Spoke 中心化管控 • 单点策略下发 • 强一致性 • 中心瓶颈风险 • 适合企业管控 联邦代理 去中心化信任 • 协议转换 • 令牌中转 • 信任关系管理 • 适合多云协作 目录同步 数据层面统一 • SCIM 协议 • 增量同步 • 最终一致性 • 适合已有 LDAP 如何选择? • 如果你有强管控需求,合规要求高 → Hub-and-Spoke • 如果你是多云对等协作,不想有单点 → 联邦代理 • 如果你已有 LDAP/AD,只想同步到云 → 目录同步 • 大多数生产环境 → 三种模式组合使用 • 我个人的经验:先做目录同步打底,再加联邦代理,最后考虑 Hub

4.5 组合使用的最佳实践

说实话,我在生产环境里很少只用一种模式。基本都是组合拳。

举个例子,我之前帮一个金融客户搭多云身份。他们的情况是这样的:

  • 已有 Active Directory(目录同步打底)
  • 需要对接 AWS、Azure、GCP(联邦代理做协议转换)
  • 合规要求所有审计日志集中(Hub-and-Spoke 做审计汇聚)

你看,三种模式都用上了。目录同步保证用户数据一致,联邦代理处理跨云认证,Hub 做审计和策略下发。

注意:组合使用时要小心策略冲突。我曾经遇到过目录同步和联邦代理同时修改同一个用户的属性,结果两边打架,用户权限时有时无。解决方案很简单:明确每个模式的职责边界,不要重叠。

4.6 架构选型决策树

最后,我整理了一个决策树,帮你快速判断该用哪种模式:

  1. 你有统一的身份源吗?
    • 有 → 目录同步(打底)
    • 没有 → 先建身份源
  2. 需要跨云 SSO 吗?
    • 需要 → 加联邦代理
    • 不需要 → 目录同步就够了
  3. 合规要求集中审计吗?
    • 需要 → 加 Hub-and-Spoke
    • 不需要 → 联邦代理 + 目录同步

嗯,这一章内容不少。三种模式,各有千秋。你先把概念理清楚,后面几章我们会深入每种模式的落地细节。到时候再手把手带你搭环境。