天蓝色 Web 应用配置设置中的“密钥保管库引用错误”
Posted
技术标签:
【中文标题】天蓝色 Web 应用配置设置中的“密钥保管库引用错误”【英文标题】:"Key vault reference error" in azure web app configuration setting 【发布时间】:2021-01-10 04:28:24 【问题描述】:我有一个由 azure 为 Linux 容器的 Web 应用程序生成的私有证书。我想通过 azure 门户中的 Web 应用程序配置设置将此值传递给我的 .net 核心应用程序。这是管道 CI-CD 流程的一部分,在应用配置中指定 Identity Server 键值的能力有助于将这些值排除在源代码之外。
问题
我通过设置不断收到以下错误
❌密钥库参考
这里也显示:
我正在尝试使用microsoft docs here 建议的格式的秘密值 我尝试了以下格式:
@Microsoft.KeyVault(https://myvault.vault.azure.net/secrets/myCertName/versionGUID)
@Microsoft.KeyVault(VaultName=myvault;SecretName=myCertName;SecretVersion=versionGUID)
另外,我已将 Web 应用添加到 azure key vault 的访问策略中
编辑 1:
出现格式错误,我输入了错误的密钥名称,因此以下格式有效:
@Microsoft.KeyVault(https://myvault.vault.azure.net/secrets/myCertName/versionGUID)
但是我遇到了一个新错误:
无法解析 Key Vault 引用,因为站点受管理 未启用身份MSINotEnabled
所以我转到了网络应用的身份标签并为该应用打开了托管身份。
我现在遇到以下错误:
无法解析 Key Vault 引用,因为站点已 拒绝访问 Key Vault 引用的保管库。
我发现多个网站说,如果您刚刚删除设置、保存,然后重新添加设置,它应该可以解决。这对我不起作用。
我还尝试在 azure key vault 访问策略中授予对 Web 应用程序的“完全访问权限”。
【问题讨论】:
【参考方案1】:首先,引用格式@Microsoft.KeyVault(https://myvault.vault.azure.net/secrets/myCertName/versionGUID)
不对,应该是@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/myCertName/versionGUID)
。
其次,我认为您没有正确授予 Web 应用的 MSI 权限。
根据您的原帖中的描述:
另外,我已将 Web 应用添加到 azure key vault 的访问策略中
然后在您的 EDIT 1 中:
所以我转到了 Web 应用的身份选项卡并为该应用打开了托管身份。
显然顺序不对,如果你之前没有启用应用的MSI,你是如何将它添加到访问策略中的?我想你可能加错了。
因此,在您的情况下,请确保您已将 Web 应用的 MSI 正确添加到访问策略中。
1.导航到 Web 应用 -> Identity
-> 复制 Object ID
(还要确保您使用的是系统分配的 MSI,keyvault 参考功能不支持用户分配的 MSI)
2.然后在 keyvault 的Access policies
-> Add Access Policy
-> seacrh 中为步骤 1 中的Object ID
添加Get
Secret 权限,如下所示 - > 选择并保存。
3.导航到应用程序并检查它,它工作正常。
【讨论】:
谢谢,你是对的,我修复了格式错误,然后我不得不删除访问策略并在启用 MSI 后重新添加。【参考方案2】:您的应用应该能够访问 Key Vault 以成功解析引用。如果其他所有内容(例如访问策略和语法)似乎都正常,但您的引用无法解析,请尝试检查您的 Key Vault 是否有任何网络限制。
如果您在 Vault 的 访问策略 设置页面上看到与“网络访问控制”相关的警告,则需要允许应用的 IP 通过 Key Vault 防火墙。
将您应用的 IP(在 Custom domain 下可用)添加到 Key Vault 的防火墙(在 Networking 下)。
参考:https://medium.com/geekculture/troubleshooting-azure-key-vault-references-in-azure-function-apps-b228c1216f63
【讨论】:
嘿@Dharman,我是新来的。我可以问一下编辑我的答案的目的吗?这是来自 *** 的指南:***.com/help/editing 我认为我的答案不需要任何编辑。 在 Stack Overflow 上发布答案时,我们会尽量减少所有噪音。这是为了尊重阅读这些答案的人的时间。 “希望有帮助”对解决方案没有任何帮助,只是视觉效果很好。我们也不会留下我们的签名、问候或个人背景故事。只要坚持解决方案,别无其他。感谢您的体贴和尊重读者的时间。以上是关于天蓝色 Web 应用配置设置中的“密钥保管库引用错误”的主要内容,如果未能解决你的问题,请参考以下文章
天蓝色中的 Web 应用程序 http 404 错误,但在本地运行
“/”应用程序中的服务器错误。“web.config”配置文件中创建一个 <customErrors> 标记 求详细的设置方法