如何将ADF运行时生成的机密令牌动态存储到Azure Key Vault
操作前提:配置Key Vault访问权限
- 首先开启ADF的系统分配托管身份(未开启的情况下,可在ADF门户左侧「托管身份」菜单中一键开启)
- 进入目标Key Vault的权限配置页:
- 若Key Vault使用访问策略模式:给ADF的托管身份分配「机密设置」权限,遵循最小权限原则不要分配多余权限
- 若Key Vault使用Azure RBAC模式:给ADF的托管身份分配「Key Vault机密发布者」角色
ADF侧实现步骤
- 先确认你通过Web活动生成的访问令牌已正确输出,提前复制该令牌的ADF表达式引用,通常格式为
@activity('你之前调用服务端点生成令牌的Web活动名称').output.access_token,可通过调试活动的输出页确认字段路径。 - 新增一个Web活动,命名为「存储访问令牌到Key Vault」,按如下参数配置:
- URL:填写
https://<替换为你的Key Vault名称>.vault.azure.net/secrets/<替换为你要存储的机密名称>?api-version=7.4,api-version可替换为任意Key Vault API稳定版本 - 请求方法:选择
PUT - 身份验证:选择「系统分配托管身份」,资源字段填写
https://vault.azure.net - 请求头:新增
Content-Type字段,值为application/json - 请求体:填写如下JSON结构,替换为你实际的令牌引用表达式:
{ "value": "@activity('你之前调用服务端点生成令牌的Web活动名称').output.access_token" }
- URL:填写
- 运行管道调试,执行完成后到Key Vault的机密列表中即可看到新增的访问令牌机密,验证值匹配即可。
可选优化配置
如果你的访问令牌有固定有效期,可在请求体中增加有效期配置,避免Key Vault中留存过期令牌,示例如下:
{ "value": "@activity('你之前调用服务端点生成令牌的Web活动名称').output.access_token", "attributes": { "exp": <替换为令牌到期时间的Unix时间戳> } }
注意事项
- 不要在ADF活动的输出、调试日志中打印访问令牌明文,避免敏感信息泄露。
- 若调用时返回403错误,优先检查Key Vault的网络访问配置是否允许ADF的IP访问,以及托管身份的权限是否配置正确。
内容的提问来源于stack exchange,提问作者sac
相关产品推荐
相关产品推荐

