小编Ale*_*min的帖子

如果尝试使用自定义身份验证质询 Lambda 触发器,SOFTWARE_TOKEN_MFA 会失败

我对 AWS Cognito 有疑问:最初,UserPool 和 UserPool 客户端默认配置为:

authenticationFlowType: 'USER_SRP_AUTH'

用户还可以使用 MFA

现在我们决定切换到自定义身份验证挑战 Lambda 触发器

authenticationFlowType: 'CUSTOM_AUTH'

添加特定的身份验证逻辑

不幸的是,面对SOFTWARE_TOKEN_MFA掉落的事实,AWS Cognito 的答案现在不同了(下一步不是有关设备的信息CUSTOM_AUTH),并且 Amplify 抛出错误:

Cannot read properties of undefined (reading 'NewDeviceMetadata')

是否可以SOFTWARE_TOKEN_MFA与自定义身份验证质询 Lambda 触发器一起使用?如果可以,如何正确执行此操作?

UPD:我在 Amplify 存储库创建了问题/错误报告,并附有完整描述

amazon-web-services amazon-cognito aws-amplify

6
推荐指数
0
解决办法
422
查看次数

AWS Cognito 在 authEvents 中发送无效的 DeviceName

我使用CognitoIdentityServiceProvider.adminListUserAuthEvents来获取用户身份验证事件,但收到了无效的结果。我从 Opera 登录,但 Cognito 显示我使用的是 Chrome 8(这是一个错误)。

如果我得到原始数据navigator.userAgent(例如:),我可以解决这个问题Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 OPR/72.0.3815.400,但我只收到这样的数据:

 {
    "EventId": ${EVENT_ID},
    "EventType": "SignIn",
    "CreationDate": ${CREATION_DATE},
    "EventResponse": "Pass",
    "EventRisk": {
      "RiskDecision": "AccountTakeover",
      "RiskLevel": "Low",
      "CompromisedCredentialsDetected": false
    },
    "ChallengeResponses": [
      {
        "ChallengeName": "Password",
        "ChallengeResponse": "Success"
      }
    ],
    "EventContextData": {
      "IpAddress": ${MY_IP_ADDR},
      "DeviceName": "Chrome 8, Linux",
      "City": ${MY_CITY},
      "Country": ${MY_COUNTRY}
    }
  }
Run Code Online (Sandbox Code Playgroud)

我不想做拐杖来澄清这些信息,例如创建preauthCognito 触发器,它将将此信息记录在另一个表中并自己处理此流程

UPD:我在这里找到的检测浏览器的拐杖

UPD 2官方 AWS Github 存储库 …

amazon-web-services amazon-cognito amazon-cognito-triggers

5
推荐指数
1
解决办法
129
查看次数