提问人:Ross Brasseaux 提问时间:9/17/2023 更新时间:9/20/2023 访问量:319
ManagedIdentityCredential 身份验证失败:访问路径...被拒绝
ManagedIdentityCredential authentication failed: Access to the path ... is denied
问:
我的 Web 应用程序从我们公司的共享 Azure Key Vault 中检索其机密,并通过 RBAC(基于角色的访问控制)授予其权限。这通常工作得很好,但是在我的新计算机上,我收到以下错误。
引发异常:“Azure.Identity.AuthenticationFailedException” System.Private.CoreLib.dll
类型未经处理的异常 “Azure.Identity.AuthenticationFailedException”发生在 System.Private.CoreLib.dll
ManagedIdentityCredential 身份验证 failed:访问路径 “C:\ProgramData\AzureConnectedMachineAgent\Tokens\20f36e17-204a-4e08-b190-bda27a9402cb.key” 被拒绝。
凭证实例正在通过以下代码加载:
credentials = new DefaultAzureCredential(new DefaultAzureCredentialOptions()
{
VisualStudioTenantId = tenantId,
SharedTokenCacheTenantId = tenantId,
VisualStudioCodeTenantId = tenantId,
InteractiveBrowserTenantId = tenantId,
});
奇怪的是,这只发生在我的新计算机上。我的下意识反应是以管理员身份运行 VS2022,但其他开发人员以自己身份运行它并且没有这个问题。
以前有人遇到过这种情况吗?
答:
1赞
Ross Brasseaux
9/20/2023
#1
至少在这种情况下,我设法解决了该错误,方法是在实例化 DefaultAzureCredential 类时从源列表中排除托管标识凭据。可以通过 DefaultAzureCredentialOptions 类执行此操作,如下所示:
credentials = new DefaultAzureCredential(new DefaultAzureCredentialOptions()
{
VisualStudioTenantId = tenantId,
SharedTokenCacheTenantId = tenantId,
VisualStudioCodeTenantId = tenantId,
InteractiveBrowserTenantId = tenantId,
ExcludeManagedIdentityCredential = true // <-- added this line
});
仍然不确定到底是什么导致了这个问题。
下一个:删除常规数组的元素
评论