基于AWS Cognito与Azure AD的Microsoft 365 SSO登录未触发MFA,如何强制启用?
如何在AWS Cognito + Azure AD SAML SSO流程中强制启用MFA
Azure AD侧配置(核心控制)
因为Azure AD是身份提供商,MFA强制逻辑优先在这里配置:
- 登录Azure AD门户,找到与Cognito对应的企业应用(即你创建的SAML集成应用)。
- 进入该应用的「条件访问」页面,创建新策略:
- 目标用户/组:选择需要强制MFA的用户或用户组范围;
- 云应用/操作:指定为当前的Cognito集成应用;
- 授予访问权限:勾选「需要多重身份验证」,其余规则按需调整;
- 启用策略并保存。
- 建议使用条件访问策略而非全局用户MFA设置,这样能精准控制仅对该SSO应用强制MFA,不影响其他Azure AD关联应用。
AWS Cognito侧配置(配合验证)
确保Cognito正确传递SAML流程,不绕过MFA检查:
- 登录AWS Cognito控制台,进入目标用户池的「身份提供者」标签,选择对应的Azure AD SAML提供商:
- 确认属性映射中,是否正确关联了Azure AD返回的身份验证属性(比如
authnmethodsreferences),这有助于Cognito识别用户已完成MFA;
- 确认属性映射中,是否正确关联了Azure AD返回的身份验证属性(比如
- 进入用户池的「MFA和验证」标签:
- 可将MFA设置为「强制」或「可选」——如果Azure AD侧已经配置了条件访问强制MFA,这里设置为「可选」也不会影响,因为Azure AD会在登录时先触发MFA验证。
验证与排查
- 重新测试登录流程,点击「使用Microsoft登录」后,应直接触发Azure AD的MFA验证步骤;
- 使用SAML tracer工具捕获SAML响应,检查断言中是否包含
http://schemas.microsoft.com/claims/authnmethodsreferences属性,且值包含http://schemas.microsoft.com/claims/multipleauthn,这表示Azure AD已完成MFA验证; - 确认用户在Azure AD中配置的MFA设备状态正常,无过期或未激活情况。
内容的提问来源于stack exchange,提问作者Harsh Kanakhara
相关产品推荐
相关产品推荐

