自定义身份验证质询 Lambda 触发器 - Amazon Cognito
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

自定义身份验证质询 Lambda 触发器

在为 Amazon Cognito 用户池构建身份验证流程时,您可能会发现需要在内置流程的基础上对身份验证模型进行扩展。自定义质询触发器的一个常见使用场景是在用户名、密码和多重身份验证(MFA)之外实施额外的安全检查。自定义质询是您可以使用 Lambda 支持的编程语言生成的任何问题和回答。例如,在允许用户进行身份验证之前,您可能希望要求用户先破解验证码或回答安全问题。另一个潜在的需求是与专门的身份验证因素或设备集成。或者,您可能已经开发了使用硬件安全密钥或生物识别设备对用户进行身份验证的软件。自定义质询的身份验证成功的定义是,您的 Lambda 函数接受为正确的答案:例如,固定字符串或来自外部 API 的满意响应。

您可以使用自定义质询开始身份验证并完全控制身份验证过程,也可以在应用程序收到自定义质询之前执行用户名和密码身份验证。

自定义身份验证质询 Lambda 触发器:

定义

启动质询序列。确定您是要启动新的质询、将身份验证标记为已完成,还是要停止身份验证尝试。

创建

向您的应用程序发出用户必须回答的问题。此函数可能会呈现安全问题或指向验证码的链接,您的应用程序应将其显示给用户。

验证

知道预期答案并将其与您的应用程序在质询响应中提供的答案进行比较。该函数可能会调用您的验证码服务的 API 来检索用户尝试的解决方案的预期结果。

这三个 Lambda 函数链接在一起,呈现出一种完全由您控制且由您自己设计的身份验证机制。由于自定义身份验证需要在您的客户端和 Lambda 函数中使用应用程序逻辑,因此您无法在托管 UI 中处理自定义身份验证。此身份验证系统需要开发人员付出额外的努力。您的应用程序必须使用用户池 API 执行身份验证流程,并使用自定义 UI 处理由此产生的质询,该 UI 可在自定义身份验证质询的中心呈现问题。

质询 Lambda 触发器

有关实施自定义身份验证的更多信息,请参阅自定义身份验证流程和质询

API 操作 InitiateAuthAdminInitiateAuthRespondToAuthChallengeAdminRespondToAuthChallenge 之间的身份验证。在此流程中,用户通过回答连续的质询进行身份验证,直到身份验证失败或用户获得令牌。质询回应可能是一个新的挑战。在这种情况下,您的应用程序会根据需要多次响应新的质询。当定义身份验证质询函数分析到目前为止的结果时,确定所有质询都已回答并返回 IssueTokens 时,身份验证就会成功。