У меня есть следующая функция Azure или, по крайней мере, ее соответствующая часть:
using Microsoft.Azure.Services.AppAuthentication;
using Microsoft.Azure.KeyVault;
using Microsoft.Azure.KeyVault.Models;
using System;
using System.Configuration;
using System.Data.SqlClient;
using System.Threading.Tasks;
public static async Task Run(TimerInfo myTimer, TraceWriter log)
{
AzureServiceTokenProvider tokenProvider = new AzureServiceTokenProvider();
var keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(tokenProvider.KeyVaultTokenCallback));
var secret = await keyVaultClient.GetSecretAsync("https://xxxxx.vault.azure.net/secrets/TwiloAccountSid");
...
}
Когда это выполняется, я получаю сообщение об ошибке «Доступ запрещен» при попытке получить секрет. Функция Azure зарегистрирована с помощью управляемой службы идентификации. Похоже, мне нужно еще кое-что сделать.
It appears there is something else I need to do.
Как упоминал SuWat ch, если мы хотим получить доступ к KeyVault, нам также необходимо добавить разрешение, чтобы позволить функции azure получить к нему доступ. Для более подробных шагов вы можете обратиться к этому гид.
Вы разрешили (добавили RBAC) MSI доступ к KeyVault? См. Этот azure.microsoft.com/en-us/resources/samples/….