【发布时间】:2019-08-27 16:36:15
【问题描述】:
我正在从 Azure VM 运行我的应用程序并尝试连接 KeyVault。但我遇到了异常
参数:连接字符串:[未指定连接字符串],资源:https://vault.azure.net,权限:https://login.windows.net/1e465dc8-5f36-4ab9-9a49-57cbfdcfdf9a。异常消息:尝试了以下 3 种方法来获取访问令牌,但都没有成功。
参数:Connectionstring:[未指定连接字符串],Resource:https://vault.azure.net,Authority: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:此帐户“用户名”需要重新验证。请前往Tools->Azure Services Authentication,重新验证你要使用的账号。
参数:连接字符串:[未指定连接字符串],资源:https://vault.azure.net,权限:https://login.windows.net/1e465dc8-5f36-4ab9-9a49-57cbfdcfdf9a。异常消息:尝试使用 Azure CLI 获取令牌。无法获取访问令牌。 'az' 未被识别为内部或外部命令, 可运行的程序或批处理文件。
我已经检查了先决条件,例如 - 1.在VM的同一资源组中创建了KeyVault,并添加了2个secret。 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;
【问题讨论】:
标签: azure azure-keyvault azure-managed-identity