如何在Azure Web App中集成类库?

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

我的应用程序托管在资源组的 Azure 应用服务中。同样,我在不同的订阅/RG 中托管了各种应用程序。

以下代码/类库是使用.Net开发的

using System;
using System.Threading.Tasks;
using Azure.Identity;
using Azure.Security.KeyVault.Secrets;


namespace AKVClassLibrary
{
 public class KeyVaultService
 {
    private readonly string _keyVaultUrl;
    private readonly SecretClient _secretClient;

    public KeyVaultService(string keyVaultUrl)
    {
        _keyVaultUrl = keyVaultUrl;
        // Using DefaultAzureCredential allows the app to use managed identity for 
  authentication
        _secretClient = new SecretClient(new Uri(_keyVaultUrl), new 
 DefaultAzureCredential());
    }

    public async Task<string> GetSecretAsync(string secretName)
    {
        try
        {
            KeyVaultSecret secret = await _secretClient.GetSecretAsync(secretName);
            return secret.Value;
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error fetching secret: {ex.Message}");
            return null;
        }
      }
    }
 }

代码将从 Azure Key Vault 获取机密。如何将类库集成到Azure Web应用程序中?那么该 Web 应用程序将使用 DLL 从 Azure Key Vault 获取机密吗?

有关 POC 的任何链接或想法都会有所帮助。谢谢

azure azure-web-app-service class-library azure-webapps
1个回答
0
投票

如果我理解正确,您想要构建具有固定

_keyVaultUrl
的类库,其他应用程序可以引用而无需指定或理解
_keyVaultUrl
的样子。您可能需要单独部署生成的 DLL,并且不会删除目标目录中的任何现有文件,请访问 https://learn.microsoft.com/en-us/azure/app-service/deploy-zip? 了解更多信息tabs=cli#deploy-individual-files 您也可以重新启动应用程序服务以再次获取秘密

实际上,我更愿意公开

_keyVaultUrl
并在配置中处理添加/检索机密。这是完全安全的,因为您可以使用托管身份 - 它允许从应用程序服务对 Azure Key Vault 进行身份验证,因此即使被泄露,用户基本上也不知道身份验证和使用
_keyVaultUrl
https://learn.microsoft.com/en-us/azure/key-vault/general/tutorial-net-create-vault-azure-web-app?tabs=azure-cli

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