我并没有做太多的客户端网页编程,所以我试图把握这个概念与我的具体情况有何联系。正确理解具有相同主机/不同端口和安全性的CORS
我有一个运行在50000s端口上的RESTful WCF服务。另外,我有一堆用HTML5/CSS3/JavaScript编写的Web表单(不是ASP WebForms),它们可以对此WCF服务进行AJAX调用。 Web表单托管在同一主机上,但正在使用端口80.由Web表单所做的AJAX调用仅为GET
请求。
此外,我有一个第三方云托管的应用程序位于完全不同的位置(不同的主机),它也需要调用WCF服务。此通信将执行POST
s & PUT
s到WCF服务。
很明显,第三方托管的云应用程序调用是跨源的。从我的研究看来,不同的港口实际上是不同的起源。
我知道,安全& CORS是不同的概念,但在这里就是我试图完成,我需要更好地了解这一切是如何工作的:
现在,我让所有的跨域请求,一切正在工作,但我想限制它以提高安全性,然后最终使用传输安全性设置HTTPS,同时使用相同证书的两个Web表单& WCF服务。第三方云服务托管应用程序仍然需要能够与WCF服务进行通信,因此我需要允许它进行不同的身份验证,以便在使用秘钥的情况下进行身份验证,因为一切都是服务器端只要。
这整个沟通“三角”对我来说都感觉很模糊,我希望SO是我发布这个问题的正确地方,因为它不直接与代码相关。
- 上面描述的WCF - web表单情况是否被认为是交叉来源?
- A)如果上述不是交叉原点,那么我是否只需要在我的web.config中通过
Access-Control-Allow-Origin: 'https://my-cloud-host'
?
B)如果据我所知,只需要在头中回显允许的源头。在这种情况下,我在IIS中为Access-Control-Allow-Origin
设置了什么(如果有的话)?如果不允许,我会回应什么,只是原始来源? - 我的想法是否使用相同的证书进行相互SSL身份验证,如果它们托管在不同的端口上?这会阻止云服务与WCF服务进行通信,还是让第二个端点允许这样做?
- 我迷失了方向吗?我很困惑这件事。