部署后无法获取Azure keyvault秘密

我试图在我的应用程序中获取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时,进入你的App服务&gt。Identity > turn on 您的系统分配的托管身份。

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

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

enter image description here

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

给TA打赏
共{{data.count}}人
人已打赏
未分类

将多个列的聚合值作为键,将列转为行。

2022-9-8 16:08:23

未分类

如何使用pandas比较一个数据框的1个元素和其他数据框的所有元素?

2022-9-8 16:08:25

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索