簡體   English   中英

將 appsettings.json 文件中的機密存儲在 Azure Key Vault 上的 .Net 控制台應用程序中

[英]Store secrets from appsettings.json file in .Net Console Application on Azure Key Vault

我有一個 .Net Core 控制台應用程序,它檢索原始數據,然后應用 Kusto 查詢,最后將它們上傳到 azure。 我將客戶端機密存儲在 appsettings.json 文件中。 然而,這不是一個好的做法,因為它們不應該被存儲在那里。 我想知道如何將以下信息存儲在 appsettings.json 文件中的Azure Key Vault (BlobConnectionString、KustoConnectionString、ClientId、ClientSecret、ApplicationInsights Instrumentation Key)上。 我找到了幾個與 .Net Core Web Apps 相關的 azure key Vaults 的文檔,但我沒有找到與Console Applications相關的任何內容。 這樣做的具體步驟是什么? 我應該首先創建一個密鑰保管庫服務。 或者我應該先做些什么? 然后我應該如何處理 appsettings.json 中上面提到的鍵的值,是否有代碼示例可以用來直接檢索存儲在 Key Vaults 中的值,所以當我執行我的代碼時,它通常會像以前一樣工作.

如果有人能給我一個想法如何做到這一點,以及是否有任何與同一主題相關的以前的代碼示例,我將不勝感激。

KeyVault 可以通過使用AddAzureKeyVault添加到任何 .net 核心應用程序,然后以與其他配置提供程序完全相同的方式訪問它(文件:appsettings.json、UserSecrets、環境變量)。

完整示例: https : //docs.microsoft.com/en-us/aspnet/core/security/key-vault-configuration?view=aspnetcore-6.0

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureAppConfiguration((context, config) =>
        {
            config.AddAzureKeyVault(
               new SecretClient(
               new Uri("Your Key Vault Endpoint"),
               new DefaultAzureCredential()),
               new AzureKeyVaultConfigurationOptions())
           {
               ...
           });
        })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM