gpt4 book ai didi

azure - @azure/identitycredentials.getToken ('openid' )在配置了环境变量的情况下返回 null 而不是 DefaultAzureCredential() 的 token ?

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

我正在尝试从 Azure 的 keyvault 检索一些 secret ,但我似乎无法使用 @azure/identity 模块进行身份验证。

版本:

"@azure/identity": "^1.0.0-preview.6",
"@azure/keyvault-secrets": "^4.0.0-preview.9",

当我尝试获取 token 时:

import { KeyVaultSecret, SecretClient } from '@azure/keyvault-secrets';
import { EnvironmentCredential } from '@azure/identity';

export const GetSecret = async (key: string): Promise<string> => {
try {
const credential: EnvironmentCredential = new EnvironmentCredential();
const token = await credential.getToken('openid');
console.log(token);
console.log('CREDENTIAL: ', credential);
console.log('CLIENT SECRET', process.env.AZURE_CLIENT_SECRET);
console.log('CLIENT ID', process.env.AZURE_CLIENT_ID);
return 'test'
} catch (err) {
console.error('Error getting secret from Azure Vault', err);
}
};

控制台结果:

 CREDENTIAL:  DefaultAzureCredential {
[10/28/2019 2:39:27 PM] _sources:
[10/28/2019 2:39:27 PM] [ EnvironmentCredential { _credential: undefined },
[10/28/2019 2:39:27 PM] ManagedIdentityCredential {
[10/28/2019 2:39:27 PM] isEndpointUnavailable: null,
[10/28/2019 2:39:27 PM] identityClient: [IdentityClient] } ] }

最佳答案

您是否为 CLIENT_SECRET 和 CLIENT_ID 设置了适当的环境变量?

EnvironmentCredential() 类希望您配置这些变量。通常,您将创建一个服务主体 (SP) 供您的应用程序使用。然后,您可以将 RBAC 应用于此服务主体,例如,通过将 Reader 角色或 KeyVault Contributor 角色分配给 SP。

如果您不想走这条路,请查看 SAS token :

https://learn.microsoft.com/en-us/azure/key-vault/key-vault-ovw-storage-keys

关于azure - @azure/identitycredentials.getToken ('openid' )在配置了环境变量的情况下返回 null 而不是 DefaultAzureCredential() 的 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58593048/

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