天蓝色 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 错误,但在本地运行

azure插槽交换和web.config设置

“/”应用程序中的服务器错误。“web.config”配置文件中创建一个 <customErrors> 标记 求详细的设置方法

Web 部署任务失败。已超出此站点的最大连接数。天蓝色

“/”应用程序中的服务器错误。“web.config”配置文件中创建一个 <customErrors> 标记

web.config配置错误