Cognito 中是否有有助于确定用户是否已在用户池中设置其 MFA 的条款?



如果在用户池级别启用了 MFA(TOTP(,则默认情况下为池中的每个用户启用 MFA。我需要区分已设置 MFA 的用户和尚未设置 MFA 的用户。(设置是通过谷歌身份验证器等应用程序注册基于 TOTP 的身份验证(

为了确定上述内容,我所做的是尝试使用 GetUser API 获取用户对象信息。如果响应包含我假定用户已设置 MFA 的"UserMFASettingList": [ "string" ]但此方法在某些情况下失败。例如,对于尚未设置 MFA 的用户,他禁用然后再次启用 MFA,他也填充了上述属性,因此检查此属性不起作用。我已经使用AdminSetUserMFAPreference API来实现启用和禁用。

是否有任何显式 API 或方法等可以帮助我确定用户池中有多少用户已设置 MFA,有多少用户尚未设置

目前,没有直接的 API 来查找已启用或禁用 MFA 的用户数。您可以向AWS支持提交相同的请求,他们可以将需求传达给服务的开发人员。

不幸的是,您暂时必须使用UserMFASettingList编写故障代码,因为这是亚马逊为此要求提供的唯一 API 标志。

由于现有 API 不能满足您的使用案例,因此,如果您为身份验证引擎启用了CUSTOM_AUTH,则可以在身份验证流程期间使用 Lambda 触发器手动记录相同的 API 。这意味着重写大量代码并更改身份验证如何为您的软件工作的整个流程(并将用户移植到新引擎(,但它可以加快获取用户数量的要求,并且您可以使用 AWS SNS 和 AWS Lambda 拥有自己的 OTP 生成器,这可以通过大量贴面变得安全可靠。

最新更新