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

关于 Web 联合身份验证

假设您要创建一个访问 Amazon 资源的移动应用程序,如在移动设备上运行并使用 Amazon S3 和 DynamoDB 存储玩家和分数信息的游戏。

当您编写此类应用程序时,将向必须使用 Amazon 访问密钥进行签名的 Amazon 服务提出请求。但是,我们强烈建议不要对用户下载到设备的应用程序嵌入或分配长期 Amazon 凭证,即使在加密存储中也是如此。相反,应构建您的应用程序,让其在需要使用 AmazonWeb 联合身份验证时动态请求临时 安全凭证。提供的临时凭证映射到的 Amazon 角色只拥有执行移动应用程序所需任务的必要权限。

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

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

如果您未使用 Amazon Cognito,则必须编写与 Web IdP(例如 Facebook)交互的代码,然后调用 AssumeRoleWithWebIdentity API 以便用您从这些 IdP 处获得的身份验证令牌交换 Amazon 临时安全凭证。如果您现有的应用程序已采用这种方法,则您可以继续使用它。

注意

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