Azure active directory 部署后无法获取Azure keyvault机密
我正在尝试在我的应用程序中获取keyvault secret,它在本地运行正常(使用我的AD凭据执行应用程序时),但在部署我的AppService后,它不工作。下面是我在Azure Portal中分配的代码和角色(IAM)。(角色:主要vault贡献者)适用于Me和AppServiceAzure active directory 部署后无法获取Azure keyvault机密,azure-active-directory,azure-keyvault,Azure Active Directory,Azure Keyvault,我正在尝试在我的应用程序中获取keyvault secret,它在本地运行正常(使用我的AD凭据执行应用程序时),但在部署我的AppService后,它不工作。下面是我在Azure Portal中分配的代码和角色(IAM)。(角色:主要vault贡献者)适用于Me和AppService public async Task<string> GetSecret() { var keyVaultUrl = "https://mykv.vault.azure.net/
public async Task<string> GetSecret()
{
var keyVaultUrl = "https://mykv.vault.azure.net/secrets/mysecret";
AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();
KeyVaultClient keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
var secret = await keyVaultClient.GetSecretAsync(keyVaultUrl)
.ConfigureAwait(false);
return secret.Value;
}
public myclass()//ctor
{
var sce=GetSecret().Result;
}
public异步任务GetSecret()
{
var keyVaultUrl=”https://mykv.vault.azure.net/secrets/mysecret";
AzureServiceTokenProvider AzureServiceTokenProvider=新的AzureServiceTokenProvider();
KeyVaultClient KeyVaultClient=new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
var secret=await keyVaultClient.GetSecretAsync(keyVaultUrl)
.配置等待(错误);
返回秘密值;
}
公共myclass()//ctor
{
var sce=GetSecret().Result;
}
将应用程序部署到azure时,请转到应用程序服务>标识
打开系统分配的托管标识
然后转到azure key vault,单击访问策略
和添加访问策略
选择Secret permission
,至少具有Get和List权限。然后在选择主体
属性中,单击您之前注册的webapp服务主体
有关更多详细信息,请参阅本教程