Azure应用程序网关是否支持条件mTLS

xkrw2x1b  于 2023-06-24  发布在  其他
关注(0)|答案(1)|浏览(108)

目前,我们正在运行Azure应用服务托管应用程序,提供不同的API端点,如/public/xyz/secured/xyz,其中/secured/...下的所有API都在应用程序级别上受到保护,需要基于x.509的AuthN。因此,应用服务配置有“客户端证书模式==允许”,这导致应用(应用服务)将向客户端请求证书的事实。如果客户端提供证书,则应用服务将获取该证书,并通过X-ARR-ClientCert HTTP自定义头转发到应用程序。但即使客户端没有发送证书,请求也会转发给应用程序。这个概念工作得很好,我们可以根据路径支持不同的AuthN方法。
由于安全准则,我们现在必须将Azure应用程序网关放置在客户端和Azure应用程序服务之间,并需要找到一种方法,使上述行为保持不变。
我搜索了微软文档和互联网,但不能弄清楚是否有一种方法来配置App GW,在涉及到客户端证书处理时,应用服务的工作方式相同。到目前为止,我只能通过使用SSL配置文件激活mTLS,但这适用于侦听器(完整域),并且要求客户端始终发送证书,即使只请求/public/... API端点。
因此,我的问题是,是否有一个技巧来配置App GW,使其行为与上面描述的App Service相同(客户端证书模式==允许)。类似于条件(基于路径的)mTLS?

8wtpewkr

8wtpewkr1#

注意:根据MsDoc*,目前仅在前端客户端和应用网关之间可以进行相互认证。暂不支持后端双向认证。**

Azure应用服务中的“客户端证书模式==允许”配置在Azure应用程序网关中没有等效的内置功能。App Gateway仅支持监听器级别的mTLS(双向TLS)身份验证,这意味着它要求客户端始终向监听器发送所有请求的证书,并且不能基于特定路径有条件地启用。
应用程序服务内置在前端,它将X-ARR-clientcert请求标头发送到应用程序服务中运行的代码,代码执行验证并检查客户端证书信息,以确定您将获得身份验证和授权
Allow不那么严格,Require会给予你证书,Allow会给你证书,用另一种身份验证方式。

配置的监听器和启用的具有中间证书和测试客户端证书的SSl简档来自受信任CA,然后规则将重写规则,经由报头将具有客户端证书的服务器值发送到App网关。

要了解更多详细信息,请查看以下参考资料:
Overview of mutual authentication on Azure Application Gateway | Microsoft Learn
Configure listener-specific SSL policies on Azure Application Gateway through portal | Microsoft Learn

相关问题