未使用 AzureTokenServiceProvider 进行身份验证
Not getting authenticated using AzureTokenServiceProvider
我正在尝试在我的 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 请求因此而失败)。
它应该可以,尝试在 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);
}
我正在尝试在我的 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 请求因此而失败)。
它应该可以,尝试在 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);
}