如何为AWS Cognito中指定应用客户端启用多因素认证(MFA)?
AWS Cognito特定应用客户端启用MFA的替代方案
目前AWS Cognito原生不支持直接在应用客户端粒度配置MFA规则,除了自定义身份验证流程之外,还有两种不需要自定义实现的可行方案:
方案1:拆分独立用户池
- 将需要强制MFA的2个应用客户端迁移到独立的新用户池,为该用户池全局开启强制MFA,其余应用客户端保留在原有MFA禁用的用户池即可。
- 适用场景:两个目标应用的用户群体和原有用户重合度较低,不需要跨池共享用户数据的场景;如果需要共享用户,可提前实现批量用户迁移逻辑。
方案2:应用层增加MFA校验规则
- 先将用户池的MFA设置为可选状态,不开启全局强制。
- 在需要强制MFA的两个应用的登录逻辑中增加校验步骤:用户完成密码验证后,主动调用Cognito接口触发MFA挑战,校验通过后才允许下发有效访问凭证,未完成MFA的请求直接拦截。
- 其余应用客户端登录时跳过MFA校验,密码验证通过后直接下发凭证即可。
- 注意事项:需确保两个目标应用的前后端逻辑都严格执行MFA校验规则,避免出现绕过风险。
如果既不想拆分用户池也不想修改应用端逻辑,目前只有官方提供的自定义身份验证流方案可以实现需求,仅需要配置几个Lambda触发器即可完成,不需要修改应用侧的登录调用逻辑,实现成本较低。
内容的提问来源于stack exchange,提问作者fjeldseth
相关产品推荐
相关产品推荐

