Azure Front Door 是否支持 TLS 客户端身份验证

Does Azure Front Door support TLS Client Authentication

我正在尝试将使用 TLS 客户端身份验证的现有应用程序放在 Front Door 后面。虽然其他 X-ARR headers 存在 X-ARR-ClientCert 不存在。是否有控制此行为的设置,或者 Front Door 这次不支持客户端身份验证?

Front Door Service 不会认证 此处未记录的任何 HTTP header。 Front Door Service 接受来自传入请求的大多数 header,而不修改它们。详细了解 Front Door supported HTTP headers

Azure Front Door Service supports the X-Forwarded-For, X-Forwarded-Host, and X-Forwarded-Proto headers. For X-Forwarded-For if the header was already present then Front Door appends the client socket IP to it. Else, it adds the header with the client socket IP as the value. For X-Forwarded-Host and X-Forwarded-Proto, the value is overridden.

我想建议首先验证 TLS 客户端身份验证是否在没有 Azure 前门的情况下工作,然后再次在应用程序前面添加前门服务。

要将您的应用设置为需要客户端证书,您需要在 Azure CLI 或云 shell.[=18= 中将应用的 clientCertEnabled 设置设置为 true ]

az webapp update --set clientCertEnabled=true --name <app_name> --resource-group <group_name>

您也可以按照以下路径启用客户端身份验证:app service---settings---configuration ---传入客户端证书---需要传入证书---证书排除路径 在 Azure 门户中。

注意:除了将此客户端证书转发给您的应用外,应用服务不会对该客户端证书执行任何操作。您的应用代码负责验证客户端证书。

对于ASP.NET,客户端证书可通过HttpRequest.ClientCertificate 属性获得。

对于其他应用程序堆栈(Node.js、PHP 等),客户端证书可通过 X-ARR-ClientCert 请求中的 base64 编码值在您的应用程序中使用 header.

参考:Configure TLS mutual authentication for Azure App Service.

通过其他渠道,我们得到官方消息,目前不支持通过 Front Door 进行 TLS 客户端身份验证。这在未来可能会改变,但从 2019 年 4 月 30 日起,必须使用其他途径。

截至 2019 年 8 月 29 日,Azure Front Door 目前不支持此功能。查看下面的反馈:

新 Link (10/28/2021):https://feedback.azure.com/d365community/idea/3341a020-f925-ec11-b6e6-000d3a4f06a4

旧link (404): https://feedback.azure.com/forums/217313-networking/suggestions/37546810-frontdooor-tls-mutual-authentication-x-arr-cli