使用 Azure 应用网关 + APIM 进行 SSL 固定

Posted

技术标签:

【中文标题】使用 Azure 应用网关 + APIM 进行 SSL 固定【英文标题】:SSL pinning with Azure App gateway + APIM 【发布时间】:2021-11-03 13:04:14 【问题描述】:

有没有办法通过 Azure 应用程序网关实现 SSL 固定。我在通过 APIM 公开的 AKS 上部署了一些 API。 APIM 是私有的,API 通过应用程序网关公开。在这种情况下,有没有办法在我的自定义 android 应用中实现 SSL 固定?

【问题讨论】:

【参考方案1】:

应用程序网关支持网关处的 TLS 终止,之后流量通常不加密地流向后端服务器。

1.传输层安全 (TLS),以前称为安全套接字层 (SSL),是用于在 Web 服务器和浏览器之间建立加密链接的标准安全技术。此链接可确保在 Web 服务器和浏览器之间传递的所有数据保持私密和加密。应用程序网关支持网关处的 TLS 终止以及端到端 TLS 加密。

2.端到端 TLS 允许您在使用应用程序网关的第 7 层负载平衡功能时加密敏感数据并将其安全地传输到后端。这些功能包括基于 cookie 的会话亲和性、基于 URL 的路由、支持基于站点的路由、重写或注入 X-Forwarded-* 标头的能力等等。

3.当配置端到端 TLS 通信模式时,应用程序网关会终止网关处的 TLS 会话并解密用户流量。然后,它应用配置的规则来选择适当的后端池实例来将流量路由到。然后,应用程序网关会启动与后端服务器的新 TLS 连接,并使用后端服务器的公钥证书重新加密数据,然后再将请求传输到后端。来自网络服务器的任何响应都会通过相同的过程返回给最终用户

参考: https://docs.microsoft.com/en-us/azure/application-gateway/end-to-end-ssl-portal

【讨论】:

以上是关于使用 Azure 应用网关 + APIM 进行 SSL 固定的主要内容,如果未能解决你的问题,请参考以下文章

Azure Functions App with APIM 使用托管标识 - 身份验证和授权

如何允许 APIM 传递到 Angular App

如何阻止 Azure APIM 中的恶意请求反复达到速率或配额限制?

Azure API 管理 - 与底层服务进行身份验证和授权同步

通过 APIM 使用 Azure 功能的 REST URL

使用 Azure APIM 策略处理表单数据