gpt4 book ai didi

c# - 从 Mac 使用 Azure Key Vault

转载 作者:行者123 更新时间:2023-12-03 03:35:07 25 4
gpt4 key购买 nike

我正在尝试在 C# 控制台应用程序中从 Azure Key Vault 读取/写入 secret 。你可以看到下面的代码,但我基本上只是遵循Microsoft Quick Start Guide 。我以前在 Windows 机器上成功地使用过这个。但是当我在 MacBook (M1) 上执行此操作时,我收到一个错误:

Unhandled exception. Azure.Identity.CredentialUnavailableException: DefaultAzureCredential failed to retrieve a token from the included credentials. See the troubleshooting guide for more information. https://aka.ms/azsdk/net/identity/defaultazurecredential/troubleshoot
- EnvironmentCredential authentication unavailable. Environment variables are not fully configured. See the troubleshooting guide for more information. https://aka.ms/azsdk/net/identity/environmentcredential/troubleshoot
- ManagedIdentityCredential authentication unavailable. Multiple attempts failed to obtain a token from the managed identity endpoint.
- Operating system Darwin 21.6.0 Darwin Kernel Version 21.6.0: Wed Aug 10 14:28:35 PDT 2022; root:xnu-8020.141.5~2/RELEASE_ARM64_T8101 isn't supported.
- Stored credentials not found. Need to authenticate user in VSCode Azure Account. See the troubleshooting guide for more information. https://aka.ms/azsdk/net/identity/vscodecredential/troubleshoot
- Azure CLI not installed
- PowerShell is not installed.

我看到它提示很多丢失的东西,但我该如何解决这个问题?我已安装 AZ CLI 工具,并在终端中运行 az login (并验证其是否有效)。我什至成功地使用 CLI 工具列出了我的 key 保管库,因此并不是没有连接。

更新:事实证明,我仅在 VS Code 中运行时收到此错误。当我切换到 Visual Studio 时,它似乎可以工作。

最小代码示例:

Console.WriteLine("Attempting to read from Key Vault...");

string keyVaultName = "<key-vault-name>";

var kvUri = "https://" + keyVaultName + ".vault.azure.net";
var client = new SecretClient(new Uri(kvUri), new DefaultAzureCredential());

string secretName = "<secret-name>";
var secret = await client.GetSecretAsync(secretName);

Console.WriteLine(secret.Value.ToString());

最佳答案

从我这边复制后,我可以在没有任何错误的情况下完成这项工作,但当我在 Azure CLI 中使用 az logout 注销时,可以重现相同的错误。因此,您收到此消息的原因是 Visual Studio 以某种方式断开了其 Azure 身份验证连接。当我再次从 Azure CLI 使用 az login 登录到 Azure 时,我可以正常运行,不会出现任何错误。我正在使用您提供的相同代码。

Console.WriteLine("Attempting to read from Key Vault...");

string keyVaultName = "";

var kvUri = "https://" + keyVaultName + ".vault.azure.net"; var client= new SecretClient(new Uri(kvUri), new DefaultAzureCredential());

string secretName = ""; var secret = awaitclient.GetSecretAsync(secretName);

Console.WriteLine(secret.Value.ToString());

注销时的结果

enter image description here

使用 az login 登录时的结果

enter image description here

关于c# - 从 Mac 使用 Azure Key Vault,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73636143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com