AWS Cognito:是否有一种方法可以在身份验证期间切换 MFA 类型?
AWS Cognito: Is there a method to switch MFA type DURING authentication?
我正在通过构建演示来研究 AWS Cognito。现在我可以设置用户 MFA 首选项以启用 SMS 和/或 TOTP,并将其中之一设置为首选 MFA 类型。然后,下次用户验证时,将根据首选 MFA 类型向用户询问 SMS 或 TOTP 验证码。
我的问题是,如果用户想在初始密码验证之后但在 MFA 响应之前切换 MFA 类型怎么办?例如,用户可能在他的 phone 以外的其他设备上拥有 TOTP。用户将 SMS 设置为首选 MFA 类型,但在发送密码并被要求提供 SMS 验证码后意识到,他的 phone 不在身边,但 TOTP 设备可用。用户此时如何切换到TOTP?或者,如果用户偏好是 TOTP 但他想在相同情况下切换到 SMS?叫什么API?
我找不到要从文档中调用的 API 方法。也许这只能通过 lambda 触发器来实现?在我看来,这是一种相当普遍的情况,应该提供一个示例/API 方法。
此致,
Bing
您可以允许用户 select 在 SMS MFA
和 TOTP MFA
之间,如果用户设置了两个 MFA,但其中 none 被 select 编辑为首选之一。以下 python 代码执行此操作:
client = boto3.client('cognito-idp')
response = client.set_user_mfa_preference(
SMSMfaSettings={
'Enabled': True,
'PreferredMfa': False
},
SoftwareTokenMfaSettings={
'Enabled': True,
'PreferredMfa': False
},
AccessToken=accessToken
)
注意:用户必须关联TOTP
才能启用TOTP
为MFA
,否则会报错。
在调用用户身份验证功能时设置这些更改后,它将在挑战中为 MFA 提供 select 选项。
我正在通过构建演示来研究 AWS Cognito。现在我可以设置用户 MFA 首选项以启用 SMS 和/或 TOTP,并将其中之一设置为首选 MFA 类型。然后,下次用户验证时,将根据首选 MFA 类型向用户询问 SMS 或 TOTP 验证码。
我的问题是,如果用户想在初始密码验证之后但在 MFA 响应之前切换 MFA 类型怎么办?例如,用户可能在他的 phone 以外的其他设备上拥有 TOTP。用户将 SMS 设置为首选 MFA 类型,但在发送密码并被要求提供 SMS 验证码后意识到,他的 phone 不在身边,但 TOTP 设备可用。用户此时如何切换到TOTP?或者,如果用户偏好是 TOTP 但他想在相同情况下切换到 SMS?叫什么API?
我找不到要从文档中调用的 API 方法。也许这只能通过 lambda 触发器来实现?在我看来,这是一种相当普遍的情况,应该提供一个示例/API 方法。
此致,
Bing
您可以允许用户 select 在 SMS MFA
和 TOTP MFA
之间,如果用户设置了两个 MFA,但其中 none 被 select 编辑为首选之一。以下 python 代码执行此操作:
client = boto3.client('cognito-idp')
response = client.set_user_mfa_preference(
SMSMfaSettings={
'Enabled': True,
'PreferredMfa': False
},
SoftwareTokenMfaSettings={
'Enabled': True,
'PreferredMfa': False
},
AccessToken=accessToken
)
注意:用户必须关联TOTP
才能启用TOTP
为MFA
,否则会报错。
在调用用户身份验证功能时设置这些更改后,它将在挑战中为 MFA 提供 select 选项。