为子级别设置Azure Key Vault的设置密钥

7

对于用户秘密管理,我在开发阶段使用用户秘密,我希望在发布和分阶段使用Azure密钥保管库。 我有以下配置。

"ConnectionStrings": {
  "DefaultConnection": "MySecretConnectionString"
},
"SmtpSettings": {
  "SmtpMailServer": "smtp.mailserver.somewhere",
  "SmtpPort": "465",
  "SenderLogin": "login",
  "SenderDisplayName": "Site ",
  "SenderPassword": "password",
  "SenderEmail": "site@mailserver.somewhere",
  "SecureSocketSettings": "SslOnConnect"
}

问题出现在我想要在Azure key vault中设置ConnectionStrings:DefaultConnectionSmtpSettings:SenderPassword时。是否有任何方法可以分配和使用嵌套属性的值?例如,就像我对用户机密所做的那样。
dotnet user-secrets set "SmtpSettings:SenderPassword" "########" --project MyProject

但对于Azure密钥保管库

az keyvault secret set --name "SmtpSettings:SenderPassword" --value "######" --vault-name MyProjectVault

不被允许,参数'secret_name'必须符合以下模式:'^[0-9a-zA-Z-]+$'

1个回答

17

根据文档,应使用--

Azure Key Vault密钥名称仅限于字母数字字符和破折号。分层值(配置部分)使用“--”(两个破折号)作为分隔符,因为Key Vault密钥名称中不允许使用冒号。在ASP.NET Core配置中,冒号将一个部分与其子键分隔开来。当将这些密钥加载到应用程序的配置中时,两个破折号序列将被替换为冒号。

az keyvault secret set --name "SmtpSettings--SenderPassword" --value "######" --vault-name MyProjectVault

@dmi 很乐意帮助。 - Vova Bilyachat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接