SAML、OIDC 和 Web 身份联合
将外部身份提供商和应用登录连接到 AWS。
SAML、OIDC 和 Web 身份联合 是 CoddyKit 上的免费 Cloud & IT Cert Prep 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cloud & IT Cert Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cloud & IT Cert Prep 课程共包含 4 节课。
联邦身份是什么意思
联邦身份允许在 AWS 外部定义的身份登录,并获得 AWS 权限,而无需拥有 IAM 用户。
外部身份提供商会为用户背书,AWS 信任这一断言并签发临时凭证。这样可以避免重复创建账户,并让现有目录继续作为事实来源。
SAML 2.0 联合身份验证
SAML(安全断言标记语言)2.0 是企业联合身份验证的经典标准。
- 您可以在 IAM 中将 IdP 注册为SAML 身份提供商。
- 用户登录后,IdP 会发送经过签名的断言。
- AWS 通过 STS 将其交换为临时角色凭证。
它常用于 Active Directory Federation Services 以及类似的企业 IdP。
OIDC 联合身份验证
OIDC(OpenID Connect)是建立在 OAuth 2.0 之上的现代令牌标准。
它非常适合联合身份验证工作负载和 CI/CD 系统。例如,GitHub Actions 流水线可以出示 OIDC 令牌,而 AWS 无需存储密钥即可代入角色。您可以将提供商注册为 IAM OIDC 身份提供商。
Web 身份联合身份验证
Web 身份联合身份验证允许用户使用 Google、Facebook 或 Amazon 等公共提供商登录,这在移动应用和 Web 应用中很常见。
应用会通过 AssumeRoleWithWebIdentity 将提供商的令牌传递给 STS,并接收权限范围限定为某个角色的临时凭证。用户完全不需要 IAM 身份。
STS 的作用
所有联合身份验证路径最终都会汇聚到 STS(安全令牌服务)。STS 会将经过验证的外部断言交换为与 IAM 角色关联的短期 AWS 凭证。
- SAML 使用 AssumeRoleWithSAML。
- OIDC 和 Web 身份使用 AssumeRoleWithWebIdentity。
角色的权限决定联合用户可以执行哪些操作。
联合身份验证的信任策略
联合用户代入的 IAM 角色具有信任策略,其中将 IdP 指定为主体。
信任策略中的 Condition 会限制该提供商中的哪些用户可以代入角色,例如匹配特定的 SAML 属性或 OIDC 的 sub 声明。这样可以避免范围过大的提供商向所有人授予访问权限。
{
"Effect": "Allow",
"Principal": { "Federated": "arn:aws:iam::111122223333:oidc-provider/token.actions.githubusercontent.com" },
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": { "StringLike": { "token.actions.githubusercontent.com:sub": "repo:my-org/my-repo:*" } }
}Identity Center 与原始联合身份验证
IAM Identity Center 本身就是面向员工用户的联合身份验证层,提供完善的门户和权限集。
原始 IAM SAML 或 OIDC 提供商属于更底层的构建模块,更适合用于应用和工作负载联合身份验证或旧系统配置。考试要求您为人工用户 SSO 选择 Identity Center,为流水线选择 OIDC 角色。
Amazon Cognito 身份池
对于面向消费者的应用,Amazon Cognito 身份池会为您代理 Web 身份联合身份验证。
它会将社交身份或用户池登录交换为临时 AWS 凭证,并在后台处理 STS 调用。对于移动应用,推荐使用此方式,而不是直接调用 AssumeRoleWithWebIdentity。
避免嵌入密钥
联合身份验证的核心目的,就是停止在应用、流水线和设备中嵌入长期密钥。
- 静态密钥泄露是导致数据泄露的主要原因之一。
- 联合令牌具有较短的有效期,并且与经过验证的身份关联。
如果题目场景中出现硬编码的访问密钥,通常应使用联合身份验证来解决。
选择合适的标准
根据来源选择标准:
- 传统企业 IdP 和 AD 使用 SAML。
- 现代工作负载和 CI/CD 使用 OIDC。
- 公共应用用户使用Web 身份 / Cognito。
它们都会提供临时凭证,主要区别在于令牌格式和使用场景。
审计联合访问
联合会话会以代入角色的身份和联合事件出现在 CloudTrail 中。
您可以追踪是哪个 IdP 以及哪个外部用户触发了操作,即使不存在 IAM 用户,也能保留责任追踪能力。统一的角色命名会让这些日志更易于阅读。
快速检查
选择正确的联合身份验证方式。
回顾
您比较了几种联合身份验证标准。
- 企业 IdP 使用 SAML,工作负载使用 OIDC,应用用户使用Web 身份/Cognito。
- 它们都会通过 STS 将经过验证的外部断言交换为临时角色凭证。
- 联合身份验证消除了嵌入长期密钥的需要。
用 AI 导师学习 Cloud & IT Cert Prep — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 150
- 课程
- 600
常见问题解答
「SAML、OIDC 和 Web 身份联合」课时是免费的吗?
是的 — 「SAML、OIDC 和 Web 身份联合」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cloud & IT Cert Prep 课程的其余内容,请升级到 CoddyKit PRO。 Cloud & IT Cert Prep 课程共包含 4 节课。
「SAML、OIDC 和 Web 身份联合」这节课中我会学到什么?
将外部身份提供商和应用登录连接到 AWS。 你通过在浏览器中直接运行的动手代码来练习 Cloud & IT Cert Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cloud & IT Cert Prep 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cloud & IT Cert Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「SAML、OIDC 和 Web 身份联合」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cloud & IT Cert Prep 课中编写并运行代码吗?
能。每节 Cloud & IT Cert Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 使用 IAM Identity Center 实现单点登录
- SAML、OIDC 和 Web 身份联合
- 跨账户角色与资源策略
- 使用 IAM Access Analyzer 审计共享