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

咨询:PowerShell中是否支持类似AzureDefaultCredentials的无密码认证

PowerShell中的无密码Azure认证方案(对应.NET/Python的DefaultAzureCredentials)

PowerShell中确实存在和.NET/Python DefaultAzureCredential 功能一致的无密码认证方案,无需依赖用户名密码、关闭MFA,核心可通过**Azure.Identity模块或Az模块自动上下文**实现,适配本地开发、Azure托管环境等多种场景:

1. 核心实现:Azure.Identity模块的DefaultAzureCredential

和其他语言逻辑完全一致,DefaultAzureCredential会自动按优先级尝试多种认证方式:

  • 本地环境:复用Connect-AzAccount缓存、AZ CLI登录凭据、Visual Studio/VS Code凭据等
  • Azure托管环境(自动化账户、VM、函数应用等):自动使用系统分配/用户分配的托管标识

步骤与示例代码

首先安装模块:

Install-Module -Name Azure.Identity -Force -AllowClobber

脚本中使用示例:

Import-Module Azure.Identity

# 初始化DefaultAzureCredential实例
$credential = [Azure.Identity.DefaultAzureCredential]::new()

# 示例:获取Azure存储服务的访问令牌
$tokenRequest = [Azure.Core.TokenRequestContext]::new(@("https://storage.azure.com/.default"))
$accessToken = $credential.GetToken($tokenRequest)

# 令牌可用于后续API调用或Az cmdlet的身份验证

2. Az模块的自动上下文简化使用

如果使用官方Az模块(Az.*系列cmdlet),大部分场景无需显式创建凭据对象:

  • 本地开发:执行Connect-AzAccount登录后,所有Az cmdlet自动复用当前登录上下文
  • Azure托管环境:为资源(如自动化账户、函数应用)启用托管标识后,直接运行Az cmdlet即可自动通过标识认证,无需额外登录操作

示例(无需手动处理凭据):

# 本地已登录Connect-AzAccount,或托管环境已启用标识时,直接执行
Get-AzVM -ResourceGroupName "your-resource-group"

3. 替代传统用户名密码方案的优势

  • 无需创建专用自动化用户、无需存储用户名密码
  • 支持MFA(本地环境的登录凭据可保留MFA)
  • 符合Azure无密码安全最佳实践,避免凭据泄露风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 18:07:33