View a markdown version of this page

实现身份验证流程 - Amazon Cognito
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

实现身份验证流程

无论您是实现托管登录,还是使用用于身份验证的 S Amazon DK 的自定义应用程序前端,都必须针对要实现的身份验证类型配置应用程序客户端。以下信息介绍了如何在应用程序客户端和应用程序中设置身份验证流程。

App client supported flows

您可以在 Amazon Cognito 控制台中为应用程序客户端配置支持的流程,也可以使用软件开发工具包中的 API 来配置支持的流程。 Amazon 在完成应用程序客户端的配置以支持这些流程后,即可在您的应用程序中部署它们。

以下过程展示了如何使用 Amazon Cognito 控制台为应用程序客户端配置可用的身份验证流程。

为应用程序客户端配置身份验证流程(使用控制台)
  1. 登录 Amazon 并导航到 Amazon Cognito 用户池控制台。选择一个用户池或新建一个。

  2. 在您的用户池配置中,选择应用程序客户端菜单。选择一个应用程序客户端或新建一个。

  3. 在应用程序客户端信息下,选择编辑。

  4. 在应用程序客户端流程下,选择要支持的身份验证流程。

为身份验证流程配置应用程序客户端 (API/SDK)

要使用 Amazon Cognito API 为应用程序客户端配置可用的身份验证流程,请在CreateUserPoolClient或UpdateUserPoolClient请求ExplicitAuthFlows中设置的值。以下是为客户端预置安全远程密码(SRP)和基于选择的身份验证的示例。

"ExplicitAuthFlows": [ "ALLOW_USER_AUTH", "ALLOW_USER_SRP_AUTH" ]

配置应用程序客户端支持的流程时,您可以指定以下选项和 API 值。

应用程序客户端流程支持
身份验证流程 兼容性 控制台 API
Choice-based认证 Server-side,客户端 登录时选择身份验证类型 ALLOW_USER_AUTH
Sign-in 使用永久密码 Client-side 使用用户名和密码登录 ALLOW_USER_PASSWORD_AUTH
Sign-in 使用永久密码和安全有效载荷 Server-side,客户端 使用安全远程密码(SRP)登录 ALLOW_USER_SRP_AUTH
刷新令牌 Server-side,客户端 从现有的经过身份验证的会话中获取新的用户令牌 ALLOW_REFRESH_TOKEN_AUTH
Server-side 身份验证 Server-side 使用服务器端管理凭证登录 ALLOW_ADMIN_USER_PASSWORD_AUTH
自定义身份验证 Server-side 以及客户端定制的应用程序。与托管登录不兼容。 通过 Lambda 触发器使用自定义身份验证流程登录 ALLOW_CUSTOM_AUTH
Implement flows in your application

托管登录会自动使您配置的身份验证选项在登录页面中可用。在定制的应用程序中,需通过声明初始身份验证流程来启动身份验证。

当用户登录时,您的InitiateAuth或AdminInitiateAuth请求的正文必须包含一个AuthFlow参数。

Choice-based 身份验证:

"AuthFlow": "USER_AUTH"

Client-based 使用 SRP 进行身份验证:

"AuthFlow": "USER_SRP_AUTH"