Aws lambda 如何使用AWS Cognito';自定义身份验证lambda触发器中的自适应身份验证安全试探法?

Aws lambda 如何使用AWS Cognito';自定义身份验证lambda触发器中的自适应身份验证安全试探法?,aws-lambda,amazon-cognito,amazon-cognito-triggers,Aws Lambda,Amazon Cognito,Amazon Cognito Triggers,我正在使用AWS Cognito自定义身份验证流。我不依赖Cognito获得MFA。我想利用Cognito的高级安全特性中的自适应身份验证安全启发法。不幸的是,触发器中的事件不包含此信息。是否可以根据自适应身份验证的风险级别设置不同的自定义挑战集?这里有一个解决方法,直到Cognito在传递给触发器的事件中包含此信息。 
根据应用程序客户端id为高级安全功能配置不同的规则。对于应用程序客户端id 1,配置自适应身份验证以阻止用户在检测到风险时登录。对于应用程序客户端id 2,配置为始终允许登录

我正在使用AWS Cognito自定义身份验证流。我不依赖Cognito获得MFA。我想利用Cognito的高级安全特性中的自适应身份验证安全启发法。不幸的是,触发器中的事件不包含此信息。是否可以根据自适应身份验证的风险级别设置不同的自定义挑战集?

这里有一个解决方法,直到Cognito在传递给触发器的事件中包含此信息。 
根据应用程序客户端id为高级安全功能配置不同的规则。对于应用程序客户端id 1,配置自适应身份验证以阻止用户在检测到风险时登录。对于应用程序客户端id 2,配置为始终允许登录

在自定义身份验证触发器lambda中,根据应用程序客户端id确定挑战。因此,当应用程序客户端为1时,使用普通登录挑战。当应用程序客户端id为2时,向客户端发送额外的挑战。

 客户端应使用应用程序客户端id 1登录,如果由于安全原因而无法登录,则使用应用程序客户端id 2登录

不幸的是,Cognito没有单独的错误代码,所以必须在响应中查找错误字符串。 这种方法确实要求其请求被认为有风险的客户机发出第二个cognito请求。这将花费该客户端更长的时间,但至少大多数用户不会看到较慢的登录


一个被探索和放弃的选项是使用lambda的Cognito admin api。这有两个问题。首先,对Cognito的额外http请求会减慢每个登录的速度。其次,您可以获取最后n个事件,但无法确保我们请求了正确的事件。如果同时尝试登录,1个无风险和1个高风险,并且admin api将无风险作为最后一个事件返回,那么两个登录都将作为无风险通过