我正在尝试将利用TLS客户端身份验证的现有应用程序放在前门后面。虽然存在其他X-ARR标头,但X-ARR-ClientCert没有。是否有设置可以控制此行为,或者Front Door这次不支持客户端身份验证?
答案 0 :(得分:0)
Front Door Service不会认证此处未记录的任何HTTP标头。前门服务从传入请求中接受大多数标头,而无需对其进行修改。详细了解Front Door supported HTTP headers。
Azure前门服务支持X-Forwarded-For, X-Forwarded-Host和X-Forwarded-Proto标头。对于X-Forwarded-For 如果标题已经存在,则前门将附加客户端 套接字IP。否则,它添加带有客户端套接字IP的标头为 价值。对于X-Forwarded-Host和X-Forwarded-Proto,该值为 覆盖。
我想建议先验证TLS客户端身份验证是否在没有Azure前门的情况下工作,然后再在应用程序的前面添加前门服务。
要将应用设置为需要客户端证书,需要在Azure CLI或云Shell中将应用的clientCertEnabled
设置为true
。
az webapp update --set clientCertEnabled=true --name <app_name> --resource-group <group_name>
您还可以按照以下路径启用客户端身份验证:应用程序服务 --- 设置 --- 配置 --- 传入客户端证书 --- 需要传入证书 --- Azure门户中的证书排除路径。
注意:App Service对此客户端证书不执行任何操作,只能将其转发到您的应用程序。您的应用代码负责验证客户端证书。
对于ASP.NET,可通过HttpRequest.ClientCertificate
属性获得客户端证书。
对于其他应用程序堆栈(Node.js,PHP等),客户端证书可通过X-ARR-ClientCert
请求标头中的base64编码值在您的应用程序中获得。
参考:Configure TLS mutual authentication for Azure App Service。
答案 1 :(得分:0)
通过其他渠道,我们得到官方消息说,Front Door当前不支持TLS客户端身份验证。将来这种情况可能会改变,但从2019年4月30日起,必须使用其他途径。
答案 2 :(得分:0)
截至2019年8月29日,Azure前门当前不支持此功能。请参阅以下反馈:https://feedback.azure.com/forums/217313-networking/suggestions/37546810-frontdooor-tls-mutual-authentication-x-arr-cli