如何通过Terraform在AzureAD中为特定应用禁用MFA?
针对特定AzureAD应用禁用所有用户MFA的实现方案
可行,但无法直接通过azuread_application资源配置——这个资源仅负责应用注册本身的基础属性,MFA管控属于身份验证策略范畴,需要通过条件访问策略实现,对应Terraform的azuread_conditional_access_policy资源。
具体实现步骤
- 引用已注册的目标应用
通过data块获取你已创建的AzureAD应用的ID,用于后续条件访问策略的目标指定。 - 创建条件访问策略
定义策略的适用范围(所有用户+目标应用),并设置授予控制为不要求MFA。
Terraform代码示例
# 获取目标应用的信息 data "azuread_application" "target_app" { display_name = "你的应用显示名称" } # 创建跳过MFA的条件访问策略 resource "azuread_conditional_access_policy" "skip_mfa_for_target_app" { display_name = "Skip MFA for Target Application" state = "enabled_for_reporting_but_not_enforced" # 先测试再改为enabled assignments { users { include = ["all"] # 应用于所有用户 exclude = [] # 可添加例外用户/组ID,比如管理员 } applications { include = [data.azuread_application.target_app.id] # 仅针对目标应用 exclude = [] } } grant_controls { operator = "OR" built_in_controls = [] # 不要求任何内置验证控制(即跳过MFA) } }
注意事项
- 确保使用的AzureAD Terraform Provider版本在v2.0及以上,否则不支持
azuread_conditional_access_policy资源。 - 测试阶段建议将
state设为enabled_for_reporting_but_not_enforced,查看策略报告确认效果后,再改为enabled正式启用。 - 为了安全性,建议添加例外用户(如全局管理员)到
assignments.users.exclude,避免管理员账号跳过MFA。
内容的提问来源于stack exchange,提问作者EmRa
相关产品推荐
相关产品推荐

