通过Azure AD Graph API创建的用户Security Defaults功能不生效问题咨询
Azure AD安全默认值(Security Defaults)MFA触发异常问题解决方案
一、Azure门户二次登录未触发MFA解决步骤
- 检查MFA记忆设置:进入Azure AD > 安全性 > 多因素认证 > 记住多因素验证页面,确认是否开启了受信任设备跳过MFA的配置,测试阶段可临时关闭该配置排除会话缓存干扰
- 无痕迹模式验证:首次配置MFA后浏览器会留存有效的MFA会话Cookie,使用浏览器无痕模式访问门户可直接验证MFA触发逻辑是否正常
- 校验用户MFA状态:运行PowerShell命令
Get-MsolUser -UserPrincipalName <用户UPN> | Select-Object DisplayName,StrongAuthenticationRequirements,确认用户MFA状态为Enforced,仅Enabled状态的用户在完成注册后可能不会强制二次MFA
二、自定义MVC应用未触发安全默认值MFA解决步骤
- 确认应用认证协议配置:进入Azure AD应用注册页面,打开对应MVC应用的身份验证配置页,确认已启用现代认证所需的ID令牌隐式流,且应用未使用WS-Federation 1.0、基本认证等旧版认证协议,安全默认值默认拦截所有旧版认证请求,不会触发MFA流程
- 检查安全默认值生效前提:如果租户已开启任意条件访问策略,安全默认值会被自动禁用,需要先关闭所有条件访问策略才能让安全默认值正常生效
- 调整企业应用分配规则:进入Azure AD企业应用页面,打开对应MVC应用的属性页,开启
需要进行用户分配?选项,未分配的用户登录时安全默认值规则不会生效 - 强制登录请求触发MFA:在MVC应用的OpenID Connect认证配置中添加参数,强制Azure AD在登录时校验MFA,参考代码如下:
builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme) .AddMicrosoftIdentityWebApp(builder.Configuration.GetSection("AzureAd")) .EnableTokenAcquisitionToCallDownstreamApi() .AddInMemoryTokenCaches() .AddOpenIdConnect(options => { options.Events.OnRedirectToIdentityProvider = context => { // 强制重新登录并校验MFA context.ProtocolMessage.Prompt = "login"; context.ProtocolMessage.AmrValues = "mfa"; return Task.CompletedTask; }; });
内容的提问来源于stack exchange,提问作者V.Mulik
相关产品推荐
相关产品推荐

