Azure Data Factory OData链接服务密钥失效及KeyVault配置问题
问题根因
- 你触发的是Azure数据工厂(ADF)OData链接服务的前端交互逻辑问题:
securestring类型的配置项在前端编辑页默认会被渲染为10个星号占位符,如果你重新打开链接服务编辑页后,没有重新填入真实的subscription-key就直接点击保存,系统会直接将这10个星号作为实际密钥值覆盖原有配置,进而导致管道鉴权失败。如果你关闭浏览器后从未编辑过该链接服务并执行保存操作,原有配置的真实密钥不会被覆盖,管道可正常运行。 - 原生OData链接服务的UI配置面板未提供Key Vault引用的可视化选项,属于产品当前的能力限制,并非你的操作错误。
可行解决方案
临时修复方案
每次打开OData链接服务的编辑页面后,先重新填入真实的subscription-key值,再执行保存操作,不要直接点击保存即可避免占位符覆盖真实密钥的问题。
永久解决方案(支持Key Vault密钥托管)
无需依赖UI配置项,直接通过动态表达式实现Key Vault密钥引用,彻底避免占位符覆盖问题:
- 为你的ADF实例的托管标识分配对应Key Vault的密钥读取权限
- 打开OData链接服务的配置页,找到你添加的
subscription-key请求头,将值的输入框切换为动态表达式模式,填入如下表达式:@Microsoft.Azure.KeyVault.Secret('替换为你的Key Vault名称', '替换为存储subscription-key的密钥名称') - 保存链接服务配置即可
该配置生效后,管道运行时会自动从Key Vault拉取真实的密钥值用于鉴权,前端编辑页的星号占位符不会再影响实际运行的配置值,同时也满足了你密钥托管的安全需求。
内容的提问来源于stack exchange,提问作者Tom Brox
相关产品推荐
相关产品推荐

