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

标签 azure azure-web-app-service azure-cloud-services

团队,

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

证书 key 直接从 web.config 获取。但证书 key 是从 EncryptedSettings.Appsettings("SecretKeyName") 获取的。

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

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

我尝试过实现相同的功能,但不幸的是,云服务的 key 检索技术似乎与 azure Web 应用程序服务中的不一样。

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

无法使用提供程序“CustomProvider”解密。来自提供者的错误消息:值不能为空。 参数名称:keyObject

有人可以指导我吗?

最佳答案

您可能希望将 secret 存储在 Azure KeyVault(它还为您提供 secret 管理功能等),而不是将 secret 存储在您的配置中,然后在运行时加载 secret 。

KeyVault 文档:

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

具体如何将 keyvault 与 azure 网站一起使用:

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

现在,不用再费心使用 keyvault 进行手动身份验证,而是使用“托管服务身份”,这里有一个教程:

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

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

关于Azure 网站无法与第三方 API 通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54276386/

相关文章:

多个 SSL 证书的 Azure 云服务配置

amazon-web-services - GCP 和 AWS 中是否有类似于 Azure "Availability Set"的内容

python - 当 "id"绑定(bind)点在 cosmosDB 集合中没有相应的项目时,用 python 编写的 Azure 函数有 500

c# - 在 Azure 上,Web api+Azure AD 或expressjs+passportjs

java - 使用 UsernamePasswordCredential 提供程序列出 Azure AD

wordpress - web.config::重定向除 root/index.html 之外的所有内容(Azure、WordPress)

c# - 如何在ASP.NET开发的Azure Web App上获取客户端的IP地址?

azure - Signal R 随机失去与服务器端的连接

azure - 如何使用 CSCFG 文件将 ILPIP 分配给 Azure 云服务的 2 个或更多实例?

asp.net-mvc - Azure 是否会阻止同时回收角色实例?