Cloud & IT Cert Prep · 课时

SAML、OIDC 和 Web 身份联合

将外部身份提供商和应用登录连接到 AWS。

第 2 / 4 课13 个步骤

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 反馈 — 无需本地设置。

此课程中的所有课时

  1. 使用 IAM Identity Center 实现单点登录
  2. SAML、OIDC 和 Web 身份联合
  3. 跨账户角色与资源策略
  4. 使用 IAM Access Analyzer 审计共享
← 返回 Cloud & IT Cert Prep