我正在从 Azure VM 运行我的应用程序并尝试与 KeyVault 连接。但我越来越低于例外
参数:连接字符串:[未指定连接字符串],资源:https ://vault.azure.net ,权限:https ://login.windows.net/1e465dc8-5f36-4ab9-9a49-57cbfdcfdf9a 。异常消息:尝试了以下 3 种方法来获取访问令牌,但都没有奏效。
参数:连接字符串:[未指定连接字符串],资源:https ://vault.azure.net ,权限:https ://login.windows.net/1e465dc8-5f36-4ab9-9a49-57cbfdcfdf9a 。异常消息:尝试使用托管服务标识获取令牌。无法连接到托管服务标识 (MSI) 端点。请检查您是否在具有 MSI 设置的 Azure 资源上运行。
参数:连接字符串:[未指定连接字符串],资源:https ://vault.azure.net ,权限:https ://login.windows.net/1e465dc8-5f36-4ab9-9a49-57cbfdcfdf9a 。异常消息:尝试使用 Visual Studio 获取令牌。无法获取访问令牌。Visual Studio 令牌提供程序 Microsoft.Asal.TokenService.exe 的异常:TS003:错误,TS001:此帐户“用户名”需要重新验证。请转到工具->Azure 服务身份验证,然后重新对您要使用的帐户进行身份验证。
参数:连接字符串:[未指定连接字符串],资源:https ://vault.azure.net ,权限:https ://login.windows.net/1e465dc8-5f36-4ab9-9a49-57cbfdcfdf9a 。异常消息:尝试使用 Azure CLI 获取令牌。无法获取访问令牌。'az' 不是内部或外部命令、可运行程序或批处理文件。
我已经检查了先决条件,例如 - 1. 在 VM 的同一资源组中创建了 KeyVault 并添加了 2 个机密。2. 检查虚拟机是否已在 Active Directory 中注册,并且它具有系统分配的身份。3. 添加了允许读取和列出 VM 机密的访问策略。
这是代码,我缺少什么
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
var azureServiceTokenProvider = new AzureServiceTokenProvider();
var keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
var secret = keyVaultClient.GetSecretAsync($"https://vaultname.vault.azure.net/Secrets/connString").Result.Value;