4

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

4

3 回答 3

2

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

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

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

于 2019-08-29T21:50:19.937 回答
1

Front Door Service 不验证此处未记录的任何 HTTP 标头。Front Door Service 接受来自传入请求的大多数标头而不修改它们。了解有关Front Door 支持的 HTTP 标头的更多信息。

Azure 前门服务支持 X-Forwarded-For、X-Forwarded-Host 和 X-Forwarded-Proto 标头。对于 X-Forwarded-For,如果标头已经存在,那么 Front Door 会将客户端套接字 IP 附加到它。否则,它会添加带有客户端套接字 IP 作为值的标头。对于 X-Forwarded-Host 和 X-Forwarded-Proto,该值被覆盖。

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

若要将应用设置为需要客户端证书,需要将clientCertEnabled应用的设置设置为trueAzure CLI 或云 shell。

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

您还可以按照以下路径启用客户端身份验证:应用服务---设置---配置---传入客户端证书---需要传入证书--- Azure 门户中的证书排除路径

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

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

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

参考:为 Azure App Service 配置 TLS 相互身份验证

于 2019-04-29T09:32:24.457 回答
1

通过其他渠道,我们得到官方消息,前门目前不支持 TLS 客户端身份验证。这可能会在未来发生变化,但截至 2019 年 4 月 30 日,必须使用其他途径。

于 2019-04-30T15:05:54.900 回答