You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PowerShell使用MFA自动化登录Azure?

启用MFA后Azure PowerShell自动化登录方案

当Azure账号启用MFA后,原有的用户名+密码直接登录方式会被限制,以下是无需手动操作验证器的自动化登录方案:

方案一:使用服务主体(Service Principal)登录

这是自动化场景下最常用的方式,服务主体是Azure AD中的专用身份,用于非交互式操作。

1. 创建服务主体

执行以下命令创建服务主体并分配权限(需拥有Azure AD管理员权限):

az ad sp create-for-rbac --name "MyAutomationSP" --role "Contributor" --scopes "/subscriptions/<你的订阅ID>"

执行后会返回包含appId、password、tenantId的JSON结果,请妥善保存这些信息。

2. 使用服务主体登录

方式A:直接传入凭据

az login --service-principal -u "<appId>" -p "<password>" --tenant "<tenantId>"
az account set --subscription "<你的订阅ID>"

方式B:通过环境变量传递(更安全,避免明文暴露)

先设置环境变量:

$env:AZURE_CLIENT_ID = "<appId>"
$env:AZURE_CLIENT_SECRET = "<password>"
$env:AZURE_TENANT_ID = "<tenantId>"

再执行登录:

az login --service-principal
az account set --subscription "<你的订阅ID>"

方案二:使用托管身份(Managed Identity)

如果脚本在Azure内部资源(如Azure虚拟机、Azure Functions、逻辑应用等)中运行,可使用托管身份实现无凭据登录:

1. 启用托管身份

在目标Azure资源的「身份」设置中,启用系统分配托管身份或用户分配托管身份,并给该身份分配对应订阅的权限(如Contributor)。

2. 登录Azure

直接执行以下命令即可自动完成身份验证:

az login --identity
az account set --subscription "<你的订阅ID>"

注意事项

  • 服务主体的凭据需定期轮换,降低泄露风险;
  • 遵循最小权限原则,给服务主体/托管身份分配完成任务所需的最低权限;
  • 企业环境中创建服务主体可能需要管理员审批,请提前确认权限。

内容的提问来源于stack exchange,提问作者Melissa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 17:02:42