AWS Identity and Access Management
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

关于 Web 联合身份验证

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

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

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

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

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