未使用AzureTokenServiceProvider进行身份验证

时间:2019-10-13 12:01:40

标签: c# azure asp.net-core-3.0

我正在尝试将ASP.NET Core 3.0 WebApp的托管服务标识用于Azure中的应用程序服务。
因此,对于本地开发,我希望实现无缝集成。在documented by Microsoft时,我尝试使用VS开发者帐户进行身份验证并配置了该帐户,因为这不起作用,我安装了Azure CLI,进行身份验证并确保使用az account get-access-token返回了令牌。

在调试时(直接是dotnet,不使用IIS Express)时,它始终表明我未通过身份验证。 (_tokenProvider.PrincipalUsed始终为null,显然KeyVault Secret请求因此失败)。

1 个答案:

答案 0 :(得分:0)

应该可以,请尝试在VS中注销您的帐户,然后再次登录。

还要确保您的用户帐户在门户中的Access policies中具有正确的权限。

然后尝试下面的代码以获取机密。

static void Main(string[] args)
        {
            var azureServiceTokenProvider1 = new AzureServiceTokenProvider();
            var kv = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider1.KeyVaultTokenCallback));
            var secret = kv.GetSecretAsync("https://<keyvault-name>.vault.azure.net/", "<secret-name>").GetAwaiter().GetResult();
            Console.WriteLine(secret);
        }