Azure 网站无法与第三方通信 API

Azure website not able to communicate to the third party API

团队,

我最近将我的 Azure 经典门户资源迁移到了 CSP 订阅。我已成功将我的 azure 云服务转换为 CSP 订阅中的 azure 应用程序网站。但是有一件事我无法连接。它是第三方 API 当我们有云服务时,我们有一个 .pfx 上传到 azure,在我们用来创建一个 uri 的代码中,它由证书密钥 + 证书密钥组成。

证书密钥直接从web.config获得。但是证书密钥是从 EncryptedSettings.Appsettings("SecretKeyName").

这基本上是从之前做的加密应用设置中得到的 https://eren.ws/2014/02/04/encrypting-the-web-config-file-of-an-azure-cloud-service/

但我不确定我们应该在 Azure 网站上实施什么方式。

我已经尝试实现相同的方法,但不幸的是,云服务的密钥检索技术似乎与 Azure Web 应用程序服务中的不同。

当我调试 azure 网站时,我可以看到它给出了错误。

使用提供商“CustomProvider”解密失败。来自提供商的错误消息:值不能为空。 参数名称:keyObject

有人可以指导我吗?

与其将机密存储在配置中,不如将它们存储在 Azure KeyVault(它还为您提供机密管理功能等),然后在运行时加载机密。

KeyVault 文档:

https://docs.microsoft.com/en-us/azure/key-vault/

具体如何在 Azure 网站上使用 keyvault:

https://docs.microsoft.com/en-us/azure/key-vault/key-vault-use-from-web-application

现在,不用再费心手动验证来使用 keyvault,而是使用 "Managed Service Identity",这里有一个教程:

https://azure.microsoft.com/en-gb/resources/samples/app-service-msi-keyvault-dotnet/

有趣的是,第二个教程确实提到使用证书进行身份验证(针对 keyvault),您可能希望自己使用此技术作为直接访问证书的简化方法。