本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建身份验证质询 Lambda 触发器
创建身份验证挑战触发器是一个 Lambda 函数,其中包含由定义身份验证挑战触发器声明的每个质询的详细信息。它处理由 define auth 质询触发器声明的质询名称publicChallengeParameters
,并返回您的应用程序必须向用户提供的。然后,此函数为您的用户池提供挑战的答案privateChallengeParameters
,即您的用户池传递给验证身份验证挑战触发器。在你的定义身份验证挑战触发器管理挑战序列的地方,你的创建身份验证挑战触发器管理挑战内容。
- 创建身份验证质询
-
如果指定自定义质询作为定义身份验证质询 触发器的一部分,则 Amazon Cognito 会在定义身份验证质询之后调用此触发器。它将创建一个自定义身份验证流程。
系统调用此 Lambda 触发器来创建要向用户显示的质询。此 Lambda 触发器的请求包括 challengeName
和 session
。challengeName
是一个字符串,是向用户显示的下一质询的名称。此属性的值在定义身份验证质询 Lambda 触发器中设置。
质询循环将一直重复到所有质询得到应答。
创建身份验证质询 Lambda 触发器参数
Amazon Cognito 传递给此 Lambda 函数的请求是以下参数和 Amazon Cognito 添加到所有请求中的常用参数的组合。
创建身份验证质询请求参数
- userAttributes
-
表示用户属性的一个或多个名称/值对。
- userNotFound
-
当为您的用户池客户端将
PreventUserExistenceErrors
设置为ENABLED
时,将填充此布尔值。 - challengeName
-
新质询的名称。
- 会话
-
会话元素是一组
ChallengeResult
元素,其中,每个元素包含以下元素:- challengeName
-
质询类型。以下值之一:
"CUSTOM_CHALLENGE"
、"PASSWORD_VERIFIER"
、"SMS_MFA"
、"DEVICE_SRP_AUTH"
、"DEVICE_PASSWORD_VERIFIER"
或"ADMIN_NO_SRP_AUTH"
。 - challengeResult
-
如果用户成功完成质询,则设置为
true
,否则设置为false
。 - challengeMetadata
-
您的自定义质询的名称。仅当
challengeName
为"CUSTOM_CHALLENGE"
时使用。
- clientMetadata
-
一个或多个键值对,您可以将其作为自定义输入内容提供给为创建身份验证质询触发器指定的 Lambda 函数。您可以使用AdminRespondToAuthChallenge和RespondToAuthChallengeAPI操作中的 ClientMetadata 参数将此数据传递给您的 Lambda 函数。调用 create auth 质询函数的请求不包括在 and 操作中的 ClientMetadata AdminInitiateAuth参数中传递的数据。InitiateAuthAPI
创建身份验证质询响应参数
- publicChallengeParameters
-
客户端应用程序要在向用户显示的质询中使用的一个或多个键/值对。此参数应包含所有必要信息,以向用户准确显示质询。
- privateChallengeParameters
-
此参数仅由验证身份验证质询响应 Lambda 触发器使用。此参数应包含所需的所有信息,以验证用户对质询的响应。也就是说,
publicChallengeParameters
参数包含向用户显示的问题,privateChallengeParameters
包含问题的有效答案。 - challengeMetadata
-
您的自定义质询的名称(如果是自定义质询)。
创建身份验证质询示例
A CAPTCHA 是作为对用户的挑战而创建的。CAPTCHA图像URL的将作为 captchaUrl
“” 添加到公共挑战参数中,预期的答案将添加到私人挑战参数中。