通过PowerShell创建的Azure Active Directory App Principal客户端密钥到期更新方法
更新到期的Azure AD应用程序客户端密钥
嘿,这个问题我太熟悉了!当你的Azure AD应用程序的客户端密钥(client secret)到期时,不用慌,咱们有几种靠谱的更新方式,我给你一步步讲清楚:
方法一:通过Azure门户手动更新
这是最直观的方式,适合不太习惯命令行的朋友:
- 登录Azure门户,找到Azure Active Directory服务
- 在左侧菜单栏选择应用注册,搜索并找到你需要更新的应用程序
- 进入应用详情页后,点击左侧的证书和密码选项
- 在客户端密码区域,点击新建客户端密码按钮
- 填写密钥的描述(比如“2025年度生产环境密钥”),选择有效期(支持自定义时长,最长可设2年),然后点击添加
- 务必立刻复制生成的密钥值! 因为离开这个页面后,系统就会隐藏这个值,再也无法查看
- 把你的应用程序配置中的旧密钥替换成这个新密钥,确认应用能正常运行后,再回到这个页面删除已到期的旧密钥
方法二:使用PowerShell更新(推荐使用Microsoft Graph模块)
如果需要自动化或者批量操作,PowerShell是个好选择:
- 首先确保你安装了Microsoft Graph PowerShell模块,未安装的话运行:
Install-Module Microsoft.Graph.Applications -Scope CurrentUser -Force - 连接到Microsoft Graph,需要应用读写权限:
Connect-MgGraph -Scopes "Application.ReadWrite.All" - 生成新的客户端密钥,替换
<你的应用程序ID>为实际ID:$newSecretParams = @{ PasswordCredential = @{ DisplayName = "2025年度更新密钥" EndDateTime = (Get-Date).AddYears(2) # 设置2年后到期,可按需调整为AddMonths(N) } } $newSecret = New-MgApplicationPassword -ApplicationId "<你的应用程序ID>" -BodyParameter $newSecretParams # 输出并保存密钥值 Write-Host "新密钥值:" $newSecret.SecretText - 替换应用配置中的旧密钥,测试正常后,删除旧密钥:
# 先列出所有客户端密钥,找到旧密钥的ID Get-MgApplicationPassword -ApplicationId "<你的应用程序ID>" # 替换<旧密钥ID>后执行删除 Remove-MgApplicationPassword -ApplicationId "<你的应用程序ID>" -PasswordCredentialId "<旧密钥ID>"
方法三:使用Azure CLI更新
适合习惯用命令行的开发者:
- 首先登录Azure CLI:
az login - 生成新的客户端密钥,替换
<你的应用程序ID>,并自定义到期日期(格式YYYY-MM-DD):az ad app credential reset --id <你的应用程序ID> --display-name "2025年度密钥" --end-date "2027-12-31" - 命令输出中会包含
password字段,复制并保存这个值 - 如需删除旧密钥,先列出所有密钥找到旧密钥的
keyId:az ad app credential list --id <你的应用程序ID> - 执行删除命令:
az ad app credential delete --id <你的应用程序ID> --key-id <旧密钥的keyId>
重要提醒
- 建议在密钥到期前1-2周就完成更新,避免突发到期导致应用认证失败
- 替换密钥后一定要全面测试应用的所有功能,确保认证流程正常
- 如果应用部署在多个环境(开发/测试/生产),记得同步更新所有环境的密钥配置
内容的提问来源于stack exchange,提问作者Sarva
相关产品推荐
相关产品推荐

