如何在node.js中使用azure/identity时设置DefaultAzureCredential的值?

bq3bfh9z  于 2023-05-28  发布在  Node.js
关注(0)|答案(1)|浏览(190)

我在node.js中使用azure/identity包。我使用DefaultAzureCredential()作为我的特定帐户运行它。但问题是,当我在本地机器上对azure keyvault进行身份验证时,它会抱怨我没有权限。当我检查它使用的auth令牌的值时,它不是我想使用的帐户,而是使用我的计算机帐户。
我们需要使用DefaultAzureCredential()来保持它,因为这在Azure上的prod上运行时适用。当我尝试控制台记录this的值时,我得到

DefaultAzureCredential {
  UnavailableMessage: 'DefaultAzureCredential => failed to retrieve a token from the included credentials',
  _sources: [
    EnvironmentCredential { _credential: undefined },
    ManagedIdentityCredential {
      isEndpointUnavailable: null,
      identityClient: [IdentityClient]
    },
    AzureCliCredential {},
    VisualStudioCodeCredential {
      cloudName: 'AzureCloud',
      identityClient: [IdentityClient],
      tenantId: 'common'
    }
  ]
}

我在同一个控制台上试过,az logout,然后是az login,并在打开的浏览器上登录了我想要的帐户。然后我尝试了az ad signed-in-user show,它显示了正确的帐户。
这在以前是有效的,但突然它停止工作而没有任何代码更改。有谁知道我该怎么解决这个问题?

xt0899hw

xt0899hw1#

似乎有一个缓存问题。
使用不需要的帐户尝试az logout --username <username>
最极端的解决方案是删除.azure文件夹以清除该高速缓存。

相关问题