1. 身份联邦与信任边界导论

在单点登录(SSO)的早期实践中,用户往往只在同一个安全域内访问应用,认证与授权由同一套系统完成。但当企业开始使用 SaaS 服务、与合作伙伴共享数据、或让员工用同一身份访问多个云平台时,身份信息就必须跨越组织边界流动。身份联邦(Identity Federation)正是为解决这一问题而生的机制:它让一个安全域中的身份提供方,向另一个安全域中的服务提供方声明“这个用户已经通过认证”,而无需把用户密码或完整身份档案复制过去。

理解身份联邦,关键要抓住三个核心角色。身份提供方(IdP,Identity Provider)负责认证用户并签发断言(Assertion),例如企业内部的 Azure AD、Okta 或 ADFS。服务提供方(SP,Service Provider)是依赖 IdP 断言来提供业务服务的应用,例如 Salesforce、Workday 或自建门户。依赖方(RP,Relying Party)则是在 OIDC 语境下对 SP 的另一种称呼,它依赖 IdP 签发的 ID Token 来建立本地会话。三者的关系可以概括为:IdP 是信任的签发者,SP/RP 是信任的消费者,而联邦协议(SAML、OIDC、WS-Federation)是信任传递的载体。

信任边界(Trust Boundary)是本节最需要建立直觉的概念。它并不是一条物理网线或防火墙规则,而是一条逻辑分界线:跨越这条线时,身份断言、令牌或属性会从一个安全域进入另一个安全域,其可信度、格式、有效期和签名验证方式都可能发生变化。例如,员工在内网通过 Kerberos 登录后访问内部 Wiki,此时信任边界在域内;当他点击“用公司账号登录”跳转到外部 SaaS 时,信任边界就出现在 IdP 与 SP 之间。边界两侧的系统各自维护自己的用户目录、会话策略和审计日志,联邦协议负责在边界上完成“可信传递”。

风险治理的目标,正是让这条边界上的每一次传递都可验证、可追溯、可限制。具体来说,需要回答四个问题:断言是否由可信 IdP 签发且签名有效?令牌是否在有效期内且未被重放?SP 是否只获得了完成业务所需的最小属性?当用户离职或权限变更时,联邦关系能否及时失效?这些问题分别对应签名验证、时效与防重放、最小权限、生命周期同步四类控制。课程后续章节将围绕这些控制展开,从协议细节、配置实现到攻击面分析与审计取证,逐步构建完整的治理能力。

身份联邦:核心角色与信任边界 IdP 身份提供方 认证用户 · 签发断言 Azure AD / Okta / ADFS SAML Assertion OIDC ID Token SP 服务提供方 消费断言 · 建立本地会话 Salesforce / Workday / 门户 验证签名与有效期 映射属性到本地角色 RP 依赖方 OIDC 语境下的 SP 依赖 ID Token 建立会话 校验 iss / aud / exp 获取 UserInfo 补充属性 断言 令牌 回传 信任边界 Trust Boundary 跨域时断言/令牌的可信度、格式、有效期与签名验证方式发生变化 边界两侧各自维护用户目录、会话策略与审计日志 签名验证 断言是否由可信 IdP 签发 时效与防重放 令牌是否在有效期内 最小权限 只授予业务所需属性 生命周期同步 离职/变更及时失效

从课程整体地图来看,后续内容将沿着“协议—实现—风险—治理”四条主线推进。协议层会拆解 SAML 与 OIDC 的断言结构、签名算法和端点交互;实现层会给出 IdP 与 SP 的具体配置样例,包括元数据交换、属性映射和会话超时设置;风险层会分析断言篡改、令牌重放、IdP 混淆、开放重定向等典型攻击路径;治理层则落到审计日志字段、异常检测规则和联邦关系下线流程。本节先建立角色与边界的整体认知,后续每一章都会回到这条边界上,回答“谁在信任谁、信任什么、信任多久、如何撤销”这一组问题。

学习建议:在阅读后续协议细节时,始终把“信任边界”画在纸上——左侧写 IdP,右侧写 SP/RP,中间标注传递的断言或令牌。每当遇到一个安全控制,先问它作用在边界的哪一侧、验证的是什么,这样更容易把零散知识点串成体系。