我正在尝试将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请求因此失败)。
答案 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);
}