将 Amazon Cognito 身份验证和授权与 Web 和移动应用程序集成
Amazon Cognito 的实施是在应用程序中混合使用Amazon Web Services 管理控制台或 Amazon SDK 管理工具和 SDK 库。Amazon Cognito 控制台是用于设置和管理 Amazon Cognito 用户池和身份池的直观界面。
使用 Amazon Cognito 用户池可以创建的最省力的集成是托管登录。托管登录是一个随时可用的基于 Web 的登录应用程序,用于快速测试和部署 Amazon Cognito 用户池。使用托管登录进行用户池身份验证需要使用引导用户访问托管登录页面的 OpenID Connect(OIDC)库。在这一系列用户交互式和重定向 Web 端点中,Amazon Cognito 负责处理身份验证流程,包括第三方登录、多重身份验证(MFA)和选择身份验证流程。您的应用程序只需处理 Amazon Cognito 在响应中返回的身份验证结果即可。
您还可以向应用程序中添加 Amazon SDK,自定义构建身份验证界面,以及调用 API 操作对用户进行身份验证和授权。Amazon Amplify
例如,应用程序可能会调用托管登录进行用户登录,然后从应用程序代码中调用令牌端点,以便通过交换用户的授权码来获取令牌。然后,应用程序必须解释和存储用户的令牌,并在适当的上下文中出示它们以进行身份验证和授权。Amplify 为这些流程添加了带有内置功能的引导式集成工具。
您也可以完全在代码中构建您的 Amazon Cognito 资源。身份池的托管身份验证选项与用户池不同—要在应用程序中访问 Amazon 凭证,请在导入的 SDK 模块中执行身份池操作。要开始使用自己的自定义构建应用程序代码,请访问 Amazon SDK
在使用 Amazon Cognito 进行身份验证和授权之前,请选择应用程序平台并准备代码以与服务集成。有关适用于 Amazon SDK 的平台,请参阅使用 Amazon 开发工具包进行身份验证。Amazon CLI 是一款适用于 Amazon Cognito 和其他 Amazon Web Services 服务的命令行 SDK,是开始自行熟悉 Amazon Cognito API 操作及其语法的重要工具。
注意
Amazon Cognito 的某些组件只能使用 API 进行配置。例如,您只能使用用于更新 CreateUserPool 或 UpdateUserPool API 请求中 UserPool 类的 LambdaConfig 属性的请求,来设置用户池自定义短信或电子邮件发件人 Lambda 触发器。
Amazon Cognito 用户池 API 与多个 API 操作类共享其命名空间。一个类配置用户池及其进程、身份提供者和用户。另一个类包括用户在公共客户端中执行的未经身份验证的操作,旨在登录、注销和管理他们的配置文件。最后一个 API 操作类执行用户操作,您可以在机密服务器端客户端中使用自己的 Amazon 凭证授权执行这些操作。在开始实现应用程序代码之前,您必须知道您想要的应用程序架构。有关更多信息,请参阅了解 API、OIDC 和托管登录页面身份验证。
主题
使用 Amazon Amplify 进行身份验证
Amazon Amplify 是构建 Web 和移动应用程序的完整解决方案。借助 Amplify,您可以使用 Amplify 库连接到现有资源,也可以使用 Amplify 命令行界面(CLI)创建和配置新资源。Amplify 还连接了用户界面组件(如身份验证器
要在前端应用程序中使用 Amplify 身份验证功能,请参阅以下按平台分列的文档。
Amplify 库是开源的,在 GitHub
使用 Amplify 创建用户界面(UI)
用户池托管登录可以满足 Web 或移动应用程序的身份验证前端的基本需求。要在托管登录可容纳的参数之外自定义您的用户界面(UI),请自定义构建应用程序。Amplify UI
要开始使用您的自定义身份验证组件,请访问身份验证器组件的以下文档。
使用 Amazon 开发工具包进行身份验证
要使用安全的后端构建您自己的身份微服务以与 Amazon Cognito 进行交互,请使用您选择的语言的 Amazon SDK 连接到 Amazon Cognito 用户池和 Amazon Cognito 身份池 API。
有关各个 API 操作的详细信息,请参阅 Amazon Cognito 用户池 API 参考和 Amazon Cognito API 参考。这些文档包含另请参阅部分,其中提供了在支持的平台上使用各种 SDK 的资源。