gpt4 book ai didi

azure - DefaultAzureCredential 引发未知错误

转载 作者:行者123 更新时间:2023-12-03 00:23:15 30 4
gpt4 key购买 nike

我正在尝试设置 Azure webapp 服务(使用 docker)来使用用户管理的身份访问我的 keyvault。我已经设置了一个用户管理身份,将其分配给我的 web 应用程序,并为其提供了我正在测试的 keyvault 中所需的访问策略(请参阅下面的缩写设置)。

在 Web 应用程序应用程序设置中,我已包含 AZURE_CLIENT_ID 的设置,我已将其设置为用户管理身份的客户端 ID,并将其注入(inject)到环境变量中。

我的应用程序是节点,我使用 @azure/identity npm 包中的 DefaultAzureCredential:

const credential = new DefaultAzureCredential();

我也尝试过:

const credential = new DefaultAzureCredential({managementIdentityClientId: '27455443-73e6-4386-aef2-05c8be5586af'});

从我所看到的一切来看,它应该可以工作,但我总是收到以下错误:

AuthenticationError: ManagedIdentityCredential authentication failed.(status code 400).
More details:
unknown_error(status code 400).
More details:
An unknown error occurred and no additional details are available.
at ManagedIdentityCredential.<anonymous> (/usr/src/app/node_modules/@azure/identity/dist/index.js:1077:23)
at Generator.throw (<anonymous>)
at rejected (/usr/src/app/node_modules/tslib/tslib.js:112:69)
at processTicksAndRejections (internal/process/task_queues.js:97:5)

如有任何建议,我们将不胜感激。

应用服务身份设置(略):

            "identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/f3f6b1b3-6e32-4fe1-ac75-41f1b2c8731f/resourcegroups/keyVaultAccess/providers/Microsoft.ManagedIdentity/userAssignedIdentities/accesstokeyvault": {
"principalId": "46eeaff7-d686-4a07-8471-90a6f892a1b4",
"clientId": "27455443-73e6-4386-aef2-05c8be5586af"
}
}
},

Keyvault 访问策略(缩写):

                    {
"tenantId": "26332e31-5b20-48a7-b449-cdae84c6c7df",
"objectId": "46eeaff7-d686-4a07-8471-90a6f892a1b4",
"permissions": {
"keys": [
"Get",
"List",
"Update",
"Create",
"Import",
"Delete",
"Recover",
"Backup",
"Restore"
],
"secrets": [
"Get",
"List",
"Set",
"Delete",
"Recover",
"Backup",
"Restore"
],
"certificates": [
"Get",
"List",
"Update",
"Create",
"Import",
"Delete",
"Recover",
"Backup",
"Restore",
"ManageContacts",
"ManageIssuers",
"GetIssuers",
"ListIssuers",
"SetIssuers",
"DeleteIssuers"
]
}
},

用户管理的身份:

    "contentVersion": "1.0.0.0",
"parameters": {
"userAssignedIdentities_accesstokeyvault_name": {
"defaultValue": "accesstokeyvault",
"type": "String"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.ManagedIdentity/userAssignedIdentities",
"apiVersion": "2018-11-30",
"name": "[parameters('userAssignedIdentities_accesstokeyvault_name')]",
"location": "westus"
}
]
}

最佳答案

我可能已经明白了。我没有在函数中使用 ManagedIdentityClientId,而是将环境变量 AZURE_CLIENT_ID 设置为我的用户托管身份的客户端 ID,这似乎有效。

我已经有一段时间没有解决这个问题了,所以不能确定是什么解决了这个问题,但如果你遇到这个问题,你可能会想尝试一下。

关于azure - DefaultAzureCredential 引发未知错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64393208/

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