如何以Azure AD为身份提供商为Azure CLI登录强制启用MFA
强制Azure CLI登录启用MFA的实现方案
核心实现逻辑
Azure AD的条件访问策略可以针对不同的客户端类型、资源访问场景设置身份验证规则,Azure CLI的所有登录流(包括设备码授权、交互式浏览器授权)都会被Azure AD识别为移动应用和桌面客户端类型的访问请求,直接匹配对应的条件访问规则即可强制MFA。
具体配置步骤
- 登录Azure AD管理中心,定位到「条件访问」-「新建策略」
- 设置策略覆盖的用户范围,建议优先针对管理员角色组或者需要强制MFA的业务用户组配置,避免影响全量用户
- 在「云应用或操作」选项中,选择
Azure 管理(Microsoft Azure Management)资源,所有Azure CLI访问Azure资源的请求都会命中这个资源的规则 - 在「条件」-「客户端应用」选项中,勾选「移动应用和桌面客户端」,同时可以按需排除其他不需要的客户端类型(比如浏览器、移动端APP等)
- 在「授予」访问控制选项中,勾选「要求多重身份验证」,可按需搭配其他验证要求(比如要求合规设备、加入混合AD域等)
- 启用策略并保存,等待规则生效(通常5-10分钟即可全局生效)
验证配置效果
配置生效后,用户在CLI执行登录命令时,不管用哪种流都会触发MFA要求:
如果是交互式浏览器登录,执行az login后跳转到的浏览器认证页面会直接要求用户完成MFA验证,验证通过后才能返回CLI完成登录。
如果是设备码流登录,执行az login --use-device-code后,按照提示访问验证页面输入设备码,后续也会强制要求完成MFA验证,未完成MFA的用户无法登录成功。
注意事项
- 建议先在测试用户组验证规则有效性,再逐步推广到生产用户组,避免规则配置错误导致用户无法正常登录
- 如果用户已经被分配了Azure AD的「按用户MFA」强制规则,即使没有配置条件访问策略,登录Azure CLI时也会要求完成MFA,两种规则会叠加生效
- 如需排除特定可信IP段的MFA要求,可以在条件访问规则的「位置」条件中添加排除的IP范围即可
内容的提问来源于stack exchange,提问作者arny
相关产品推荐
相关产品推荐

