我在试着从钥匙库里弄到钥匙的价值。我得到了这个例外。消息“ManagedIdentityCredential身份验证失败:服务请求失败。状态:503(服务不可用)内容:“service_unavailable error_description:服务不可用,因为计算机未连接到Azure。连接状态:断开连接。
string keyVaultName = Environment.GetEnvironmentVariable("keyVaultName");
var kvUri = "https://" + keyVaultName + ".vault.azure.net";
var client = new SecretClient(new Uri(kvUri), new DefaultAzureCredential());
var secretName = "testKeyVault";
try
{
var clientIdRecord = await client.GetSecretAsync(secretName);
string KeyvaultValue = clientIdRecord.Value.Value;
return new OkObjectResult(KeyvaultValue);
字符串
这是我的本地设置. json
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"keyVaultName": "DemoProjectVault"
}
}
型
谁能帮我把这个修好。
1条答案
按热度按时间qyswt5oh1#
正如**@SiddheshDesai**在评论中提到的,您需要在Key vault访问策略中增加托管身份的功能。
**我对你的代码做了一些修改。我得到了我的钥匙库的秘密。
验证码:
字符串
输出:
成功运行如下,
x1c 0d1x的数据
通过上面的输出URL,我得到了我的密钥库secret如下:
的
我在Azure门户的函数应用中给托管身份赋予了权限On,如下所示:
的
并在Azure门户的密钥库中访问功能应用程序,如下所示,
的
我在钥匙库中获得了功能应用程序的访问权限,如下所示,
x1c4d 1x的
然后,我将其部署到Azure门户中的函数应用程序中,并成功部署,如下所示:
型
我在Azure门户的函数应用程序中运行代码,并获得了密钥库的秘密,如下所示:
型