部署后无法获取Azure keyvault秘密

问题描述 投票:0回答:1

我试图在我的应用程序中获取keyvault秘密,它是在本地工作正常(而执行应用程序与我的AD凭证),但部署我的AppService后,它是不工作。下面是我在Azure Portal中分配的代码和角色(IAM)。角色:钥匙库贡献者)为我和AppService。

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;
    }
azure-devops azure-active-directory azure-keyvault
1个回答
1
投票

当你把你的应用程序部署到azure时,进入你的App服务&gt。Identity > turn on 您的系统分配的托管身份。

然后进入你的 azure 密钥库,点击 Access policiesadd access policy.

选择 Secret permission 至少有 获取和列表 允许。然后在 Select principal 属性,点击你之前注册的webapp服务委托人。

enter image description here

更多的细节,你可以参考这个教程来了解 使用 azure 管理身份从 ASP.NET 核心应用程序连接到 azure 密钥库。.

© www.soinside.com 2019 - 2024. All rights reserved.