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

如何自动续订Azure AD应用客户端密钥并存储到Key Vault

自动续订Azure AD应用客户端密钥并同步至Key Vault的实现方案

核心思路

通过定期触发的自动化流程,完成「检测密钥过期时间→生成新密钥→同步到Key Vault→更新依赖服务配置(可选)」的闭环,全程基于Azure原生工具实现,无需第三方服务。

具体实现步骤

1. 配置必要权限

先确保执行自动化的身份(如托管标识)拥有以下最小权限:

  • 目标Azure AD应用:Application.ReadWrite.OwnedBy权限(仅操作自身拥有的应用,遵循最小权限原则)
  • Azure Key Vault:Secret.Set和Secret.Get权限,用于写入新密钥、读取旧密钥(可选)

2. 编写密钥检测与生成逻辑

以Azure Automation Runbook的PowerShell脚本为例,实现核心逻辑:

# 以托管标识身份连接Azure
Connect-AzAccount -Identity

# 配置参数
$targetAppId = "你的Azure AD应用ID"
$keyVaultName = "目标Key Vault名称"
$kvSecretName = "存储客户端密钥的Secret名称"
$expiryAdvanceDays = 30 # 提前X天触发续订

# 获取应用当前的客户端密钥
$targetApp = Get-AzADApplication -ApplicationId $targetAppId
$currentCredentials = $targetApp.PasswordCredentials

# 检测即将过期的密钥
$expiryThreshold = (Get-Date).AddDays($expiryAdvanceDays)
$expiringKeys = $currentCredentials | Where-Object { $_.EndDate -lt $expiryThreshold }

if ($expiringKeys) {
    # 生成新的客户端密钥,有效期设为1年(可自定义)
    $newCredential = New-AzADAppCredential -ApplicationId $targetAppId -EndDate (Get-Date).AddYears(1)
    
    # 将新密钥存入Key Vault
    $secureSecret = ConvertTo-SecureString $newCredential.SecretText -AsPlainText -Force
    Set-AzKeyVaultSecret -VaultName $keyVaultName -Name $kvSecretName -SecretValue $secureSecret
    
    # 可选:删除即将过期的旧密钥
    foreach ($key in $expiringKeys) {
        Remove-AzADAppCredential -ApplicationId $targetAppId -KeyId $key.KeyId
    }
}

3. 设置定期触发

将上述脚本部署到Azure Automation Runbook,配置每日或每周触发的计划,确保能及时捕捉到即将过期的密钥。若使用Azure Functions,可设置Timer Trigger实现同样的定时执行逻辑。

4. 依赖服务的自动刷新(可选)

如果有服务依赖该客户端密钥,需确保它们能自动获取最新值:

  • Azure原生服务(如App Service、Function App):开启系统托管标识,配置Key Vault访问策略后,直接在应用配置中用@Microsoft.KeyVault(SecretUri=密钥URI)引用,系统会自动刷新密钥值。
  • 自建服务:实现定期从Key Vault拉取密钥的逻辑,或利用Key Vault的事件网格通知,在密钥更新时触发服务配置刷新。

5. 监控与告警

为保障流程稳定运行,添加监控机制:

  • 在Azure Automation/Functions中开启日志记录,集成到Log Analytics,设置脚本执行失败、密钥生成失败的告警规则。
  • 额外配置Key Vault的密钥过期告警,作为双重保障。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 00:10:34