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

如何在Azure工作流的内联C#脚本中获取Key Vault密钥

在Azure Logic Apps内联C#脚本中读取Key Vault密钥的正确方法

核心结论

在Logic Apps的内联C#脚本里,不需要手动实例化KeyVaultClient,直接通过工作流已关联的密钥引用即可,或者用内置托管身份结合简化调用方式实现。

两种可行方案

方案1:直接引用工作流已关联的密钥

既然你已经在工作流中关联了名为HMAC的密钥(对应变量名HMACKey),可直接通过WorkflowContext访问已关联的密钥值,无需调用Key Vault API:

string secretKey = WorkflowContext.Secrets["HMACKey"];

工作流已完成密钥的获取与授权,你只需通过上下文对象直接读取即可,这是最简便的方式。

方案2:用托管身份调用Key Vault API(需直接调用场景)

如果必须通过GetSecretAsync方法读取,可利用Logic Apps的托管身份授权,无需手动创建带凭据的KeyVaultClient实例:

  1. 确保Logic Apps工作流已启用系统分配托管身份
  2. 给该托管身份分配Key Vault的机密读取权限(在Key Vault访问策略中配置)
  3. 使用以下代码调用:
using Azure.Security.KeyVault.Secrets;
using Azure.Identity;

var client = new SecretClient(new Uri("https://hmactesting.vault.azure.net"), new DefaultAzureCredential());
KeyVaultSecret secret = await client.GetSecretAsync("HMAC");
string secretKey = secret.Value;

DefaultAzureCredential会自动使用Logic Apps的托管身份完成授权,无需手动传入凭据。

常见问题排查

  • 方案1报错时,检查工作流中关联的密钥变量名是否正确(确认HMACKey是关联时设置的变量名)
  • 方案2报错时,检查托管身份的权限配置是否正确,Key Vault防火墙是否允许Logic Apps访问(若启用防火墙)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 12:14:52