@ azure / identity credentials.getToken ('openid') возвращает null вместо токена для DefaultAzureCredential () с настроенными переменными среды? - PullRequest
2 голосов
/ 28 октября 2019

Я пытаюсь получить некоторые секреты из хранилища ключей Azure, но не могу выполнить аутентификацию с помощью модуля @ azure / identity.

Версии:

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

Когда я пытаюсь получитьтокен:

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] } ] }

1 Ответ

0 голосов
/ 28 октября 2019

Вы установили соответствующие переменные среды для CLIENT_SECRET и CLIENT_ID?

Класс EnvironmentCredential() ожидает, что эти переменные будут настроены. Как правило, вы должны создать субъект-службу (SP) для использования вашим приложением. Затем вы можете применить RBAC к этому субъекту службы, например, назначив роль Reader или роль KeyVault Contributor для SP.

Если вы не хотите идти по этому пути, взгляните на токены SASвместо:

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

...