【问题标题】:Azure web app connection string in configuration fetch values from KeyVault配置中的 Azure Web 应用程序连接字符串从 KeyVault 获取值
【发布时间】:2022-12-11 09:42:12
【问题描述】:

我需要配置要从 Azure Web App 连接字符串中的 Azure KeyVault 获取的密码。有人可以解释如何配置吗?

提前致谢 !

我尝试从应用程序设置中的密钥保管库获取密码,它工作正常,但无法将它集成到连接字符串中。

【问题讨论】:

  • 参考这个documentation,你可以使用key vault引用。
  • 您正在使用的 Web 应用程序的 versionframwork 是什么?
  • 它是 Core.Net framework Web 应用程序?

标签: security azure-web-app-service connection-string azure-keyvault azure-webapps


【解决方案1】:
  • 创建一个Azure KeyVault
  • 创建秘密。复制 Secret 的 Secret Identifier(这必须在 Azure 配置中使用 Connection String)。

  • 使用Access policies提供必要的资助。
  • Azure App Service => Configuration => Application Settings => Connection Strings 中,添加新的连接字符串设置。
  • 对于 .NET Core 应用程序,密钥名称必须是 MyNewConn
  • 对于 .NET Framework App,Azure App Connection String 中的名称必须与 Local Configuration 中的键名相同。

感谢@Anand Sowmithiran 的评论。

  • 连接字符串的值必须是@Microsoft.KeyVault(SecretUri=Secret Identifier)
  • Secret Identifier 值替换为我们从 KeyVault Secret(在第 1 步中)复制的值。

对于.NET Core 网络应用程序

appsettings.json

 "ConnectionStrings": {
    "MyNewConn": "LocalValue"
  }
string connectionString = configuration.GetConnectionString("MyNewConn");

对于.NET Framework 网络应用程序

  • Web.config文件中,您必须有以下设置
 <configSections>
    <section name="configBuilders" type="System.Configuration.ConfigurationBuildersSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=*****" restartOnExternalChanges="false" requirePermission="false" />
  </configSections>
  <configBuilders>
    <builders>
      <add name="AzureKeyVault" vaultName="KeyVaultName" type="Microsoft.Configuration.ConfigurationBuilders.AzureKeyVaultConfigBuilder, Microsoft.Configuration.ConfigurationBuilders.Azure, Version=1.0.0.0, Culture=neutral"  vaultUri="https://YourKeyVaultName.vault.azure.net" />
    </builders>
  </configBuilders>
  <connectionStrings>
    <add name="MyNewConn" connectionString="Retrieves the value from Azure App Service Connection String" providerName="System.Data.SqlClient" />
  </connectionStrings>
 var conn = ConfigurationManager.ConnectionStrings["MyNewConn"];    

【讨论】:

  • 谢谢@Harshitha,我已经尝试过这种方式,您能分享一下如何在连接字符串中使用应用程序设置值吗?
  • 这是一个 Dotnet Core - 5.0 Web 应用程序
  • 请分享您的appsettings.json 文件。
  • 请找到 appsettings 配置以供参考 "AllowedHosts": "*", "ConnectionStrings": { "DefaultConnection": "Server=tcp:sqlserver.database.windows.net,1433;Initial Catalog=Database;Persist Security Info=False; User ID=user;Password={your_password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30" },
  • 请让我知道你到底想达到什么目的。
猜你喜欢
  • 2017-09-29
  • 2021-03-02
  • 2021-02-15
  • 2012-01-26
  • 2015-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-10
相关资源
最近更新 更多