如何使用PowerShell为Azure应用注册创建永不过期的客户端密钥
前置准备
你无需在PowerShell的特定存储库执行代码,操作前仅需满足两个条件:
- 你的Azure账号拥有目标应用注册的「所有者」权限,或组织的全局管理员、应用程序管理员权限
- 本地PowerShell以管理员身份启动
具体操作步骤
- 安装Azure AD官方PowerShell模块,执行命令:
Install-Module -Name AzureAD
如果执行时弹出「是否信任存储库」的提示,输入A回车确认全量信任即可。 - 连接到你所属组织的Azure AD租户,执行命令:
Connect-AzureAD -TenantId "你的租户ID"
租户ID可直接在Azure门户的对应应用注册「概览」页复制,执行命令后会弹出Azure账号登录窗口,输入你的账号密码完成登录即可。
- 获取目标应用注册的对象ID,执行命令:
Get-AzureADApplication -Filter "DisplayName eq '你的应用注册显示名称'"
在返回的结果中找到ObjectId字段,复制对应值备用。 - 创建永不过期的客户端密钥,依次执行以下命令:
# 替换为上一步复制的应用ObjectId $appObjectId = "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" # 设置密钥过期时间为100年后,等效永不过期 $endDate = (Get-Date).AddYears(100) # 创建密钥 New-AzureADApplicationPasswordCredential -ObjectId $appObjectId -EndDate $endDate
执行成功后返回结果中的
Value字段就是生成的客户端密钥,请立刻复制保存到安全位置,关闭窗口后将无法再次查看该密钥值,规则和Azure门户创建的密钥完全一致。
常见疑问解答
- 密钥创建完成后是否会在Azure门户的「应用注册」页面可见?
可见。你打开对应应用注册的「证书和密码」页面,在客户端密码列表中可以看到这条密钥,过期时间会显示为「从不」,和门户创建的密钥展示规则完全一致,仅无法在门户查看密钥值。 - 是否需要在PowerShell的特定存储库中执行对应代码?
不需要。所有操作仅需在本地安装了AzureAD模块的PowerShell窗口执行即可,无需额外配置特殊存储库。
安全提示:永不过期的密钥存在较高泄露风险,建议生产环境定期轮换密钥,降低安全隐患。
内容的提问来源于stack exchange,提问作者Julien Turcotte
相关产品推荐
相关产品推荐

