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

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

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

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

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

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

定义

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

创建

向您的应用程序发出用户必须回答的问题。此功能可能会显示安全问题或指向您的应用程序的链接CAPTCHA,该问题应显示给您的用户。

验证

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

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

质询 Lambda 触发器

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

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