小编Sve*_*ing的帖子

带有 USER_PASSWORD_AUTH 的 AWS Cognito 自定义身份验证流程

我目前正在使用定义、创建和验证触发器处理自定义身份验证流程。但是,在流程中不会检查用户密码。我们在客户端上使用 USER_PASSWORD_AUTH 选项,因此没有 SRP。

我看到了这个问题Can I use the migration trigger in a Custom auth flow并且不太确定它是否回答了我的问题:

是否可以将自定义身份验证流程与用户名-密码(非 SRP)流程结合使用?如果是这样,我必须返回的挑战名称是什么?

这里声明可以使用组合,但在我看来 PASSWORD_VERIFIER 仅适用于 SRP 身份验证:

自定义身份验证流程还可以使用内置质询(例如 SRP 密码验证和通过 SMS 的 MFA)和自定义质询(例如 CAPTCHA 或秘密问题)的组合。

amazon-web-services amazon-cognito

4
推荐指数
1
解决办法
2510
查看次数

在 AWS Cognito 中回答 NEW_PASSWORD_REQUIRED 质询后继续自定义身份验证流程

新用户由管理员创建。他们需要在首次登录时重置初始密码。我们将 Cognito 应用程序客户端配置为仅允许自定义身份验证流 (CUSTOM_AUTH_FLOW_ONLY)。但是当用户重置他们的密码时,身份验证流程结束,他们立即获得 id-、access- 和 refresh-token,不会发出任何自定义质询。

  • 我如何引导流程以继续我的自定义挑战流程,而不是发行令牌?
  • 如果令牌在重置初始密码后不会在响应中发送,它也会起作用,因此用户必须再次登录。

一个新用户当前正在运行此流程:

  1. 目前,对于新用户,我们发送InitiateAuthRequest用户名和 SRP_A,AuthFlow 设置为CUSTOM_AUTH,就像正常登录一样。
  2. 我们的 DefineAuthChallengeLambda 被击中,发出PASSWORD_VERIFIER挑战。
  3. 客户端使用 srp 声明、用户名和时间戳来响应身份验证质询。
  4. Cognito 验证响应并发现用户必须更改其密码。我们的 lambda 触发器被跳过,NEW_PASSWORD_REQUIRED挑战由 Cognito 返回。
  5. 客户端使用新密码响应身份验证质询,Cognito 接受密码并发出令牌,这不是我们想要的。

我们要么希望流程在这里结束而不发出任何令牌,要么不在这里结束并继续定义身份验证挑战触发器调用。

amazon-cognito

4
推荐指数
1
解决办法
1509
查看次数