我已经使用 Keyvault 和托管身份有一段时间了。但对于这个项目,我在本地开发时得到了奇怪的结果。
由于某种原因,如果我没有 ExcludeManagedIdentityCredential = true,那么在本地计算机上开发时,它会抛出错误并且不会获得 secret 。如果我添加该标志,它就会像预期的那样使用我的 Visual Studio 凭据。
非常困惑为什么我必须添加该标志,因为我以前从未添加过该标志。
using AzureEventSourceListener listener = AzureEventSourceListener.CreateConsoleLogger();
DefaultAzureCredentialOptions options = new DefaultAzureCredentialOptions()
{
Diagnostics =
{
LoggedHeaderNames = { "x-ms-request-id" },
LoggedQueryParameters = { "api-version" },
IsLoggingContentEnabled = true,
IsAccountIdentifierLoggingEnabled = true,
},
ExcludeManagedIdentityCredential = true
};
var client = new SecretClient(new Uri(xxx), new DefaultAzureCredential(options));
错误:
不确定为什么它甚至在本地尝试托管身份,以及为什么它不会失败并继续使用 Visual Studio Identity。
摘要:在云中运行良好,在添加 ExcludeManagedidentityCredential = true 时在本地运行良好。不知道为什么我在本地需要该标志。
最佳答案
我认为这是你的问题:https://github.com/Azure/azure-sdk-for-net/issues/28218
尝试将 Azure.Identity 降级到 1.4(如果可能)以查看问题是否继续重现。
关于c# - Azure Keyvault 本地问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71863851/