OIDC 联合身份验证 - Amazon Identity and Access Management
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

OIDC 联合身份验证

假设您要创建一个访问 Amazon 资源的应用程序,例如使用工作流访问 Amazon S3 和 DynamoDB 的 GitHib Actions。

当您使用这些工作流时,将向必须使用 Amazon 访问密钥进行签名的 Amazon 服务提出请求。但是,我们强烈建议您不要将 Amazon 凭证长期存储在 Amazon 之外的应用程序中。而应将应用程序配置为在需要使用 OIDC 联合身份验证时动态请求临时 Amazon 安全凭证。提供的临时凭证会映射到一个 Amazon 角色,该角色将只拥有执行该应用程序所需任务的必要权限。

借助 OIDC 联合身份验证,您不需要创建自定义登录代码或管理自己的用户身份。相反,您可以在应用程序(例如 GitHub Actions 或任何其他兼容 OpenID Connect(OIDC)的 IdP)中使用 OIDC 进行 Amazon 身份验证。他们会接收身份验证令牌(称为 JSON Web 令牌,JWT),然后用该令牌交换 Amazon 中的临时安全凭证,这些凭证映射到有权使用您 Amazon Web Services 账户 中资源的 IAM 角色。使用 IdP 有助您确保 Amazon Web Services 账户的安全,因为您不必随应用程序嵌入和分配长期安全凭证。

对于大多数方案,我们建议您使用 Amazon Cognito,因为它可充当身份代理并为您完成许多联合工作。有关详细信息,请参阅以下部分:将 Amazon Cognito 用于移动应用程序

注意

由 OpenID Connect(OIDC)身份提供程序颁发的 JSON Web 令牌(JWT)在 exp 声明中包含指定令牌何时过期的过期时间。在 OpenID Connect (OIDC) Core 1.0 标准允许的情况下,IAM 在 JWT 中指定的到期时间之外提供五分钟的时段来解决时钟偏差。这意味着将接受 IAM 在到期时间后但在这五分钟内收到的 OIDC JWT 以进行进一步的评估和处理。