Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web services Azure应用程序网关阻止SOAP 1.2请求_Web Services_Azure_Soap_Azure Application Gateway - Fatal编程技术网

Web services Azure应用程序网关阻止SOAP 1.2请求

Web services Azure应用程序网关阻止SOAP 1.2请求,web-services,azure,soap,azure-application-gateway,Web Services,Azure,Soap,Azure Application Gateway,我正在配置一个现有的SOAP web服务,使其运行在带有web应用程序防火墙的Azure应用程序网关之后 soapweb服务是用C#编写的,并作为Azure云服务中的web角色在Azure中运行。目前,它支持SOAP 1.1和SOAP 1.2 我已经配置了一个Azure应用程序网关,启用了Web应用程序防火墙,以便在该服务前面运行。WAF正在使用OWASP 3.0规则集 从SoapUI发送测试请求时,应用程序网关WAF似乎允许SOAP1.1请求通过,但阻止了SOAP1.2请求(返回403错误)。

我正在配置一个现有的SOAP web服务,使其运行在带有web应用程序防火墙的Azure应用程序网关之后

soapweb服务是用C#编写的,并作为Azure云服务中的web角色在Azure中运行。目前,它支持SOAP 1.1和SOAP 1.2

我已经配置了一个Azure应用程序网关,启用了Web应用程序防火墙,以便在该服务前面运行。WAF正在使用OWASP 3.0规则集

从SoapUI发送测试请求时,应用程序网关WAF似乎允许SOAP1.1请求通过,但阻止了SOAP1.2请求(返回403错误)。我在文档或其他任何地方找不到任何关于为什么会发生这种情况的参考资料。我知道这是WAF,因为禁用它允许SOAP1.2请求通过

(工作)SOAP 1.1请求的HTTP头如下所示(删除了服务和命名空间URL):

SOAP 1.2请求(不工作)的HTTP头如下所示:

POST http:/{serviceURL}/{service}.asmx HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: application/soap+xml;charset=UTF-8;action="http://{namespaceURL}/{method}"
Content-Length: 3652
Host: {serviceURL}
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
查看WAF日志,我认为问题在于内容类型的更改,基于我对SOAP1.2的理解(不是很深入),这是正确的


任何想法都值得赞赏。似乎SOAP的使用范围仍然足够广泛,Azure应用程序网关/WAF应该支持它

您在WAF日志中看到了什么错误?它说“策略不允许请求内容类型”。SOAP 1.1的内容类型是text/xml。SOAP 1.2的内容类型是application/SOAP+xml。我认为WAF阻止了此内容类型。WAF实现了OWASP 3.0策略。在OWASP 3.0.1发行说明中(),它提到:*对RFC 3902(内容类型应用程序/soap+xml;Christoph Hansen)的支持。因此,似乎已更新策略以处理此问题。但WAF尚未更新。我建议与Microsoft一起打开一个支持案例,以查看他们是否计划更新规则。同时,作为一种解决方法,您可以禁用该规则。转到应用程序网关>Web应用程序防火墙>高级规则配置>REQUEST-920-PROTOCOL-强制执行并禁用规则。谢谢。已记录支持票证,并已禁用违规规则。现在可以使用了。
POST http:/{serviceURL}/{service}.asmx HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: application/soap+xml;charset=UTF-8;action="http://{namespaceURL}/{method}"
Content-Length: 3652
Host: {serviceURL}
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)