Mic*_*Man 2 .net c azure shared-secret azure-security
我正在尝试使用MSI从控制台应用程序连接到Azure Vault
对于此保管库,我已将我的用户添加为“选择的原理”
,我用来连接的代码是
var azureServiceTokenProvider = new AzureServiceTokenProvider();
var keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
var secret = await keyVaultClient.GetSecretAsync("https://<vaultname>.vault.azure.net/secrets/<SecretName>").ConfigureAwait(false);
Run Code Online (Sandbox Code Playgroud)
我得到以下异常
Microsoft.Azure.Services.AppAuthentication.AzureServiceTokenProviderException:参数:Connectionstring:[未指定连接字符串],资源:https : //vault.azure.net,颁发机构
class Program
{
// Target C# 7.1+ in your .csproj for async Main
static async Task Main()
{
var azureServiceTokenProvider = new AzureServiceTokenProvider();
var keyVaultClient = new KeyVaultClient(
new KeyVaultClient.AuthenticationCallback(
azureServiceTokenProvider.KeyVaultTokenCallback));
var secret = await keyVaultClient.GetSecretAsync(
"https://VAULT-NAME.vault.azure.net/secrets/SECRET-NAME");
Console.WriteLine(secret.Value);
Console.ReadLine();
}
}
Run Code Online (Sandbox Code Playgroud)
若要在本地运行,请创建自己的Azure AD应用程序注册(使用Web App / Web API类型使其成为机密客户端),将其添加到Key Vault中,并在获取访问令牌(https:// docs)时使用其client_id和client_secret
。 microsoft.com/zh-CN/azure/key-vault/key-vault-use-from-web-application#gettoken
正如Varun在评论中提到的那样,现在有一种更好的方法可以在本地运行时获取访问令牌,而无需暴露服务主体-
| 归档时间: |
|
| 查看次数: |
2735 次 |
| 最近记录: |