如何在istio中始终允许HTTP OPTION请求?

时间:2019-05-20 05:51:54

标签: istio

我们已将API设计为使用Istio JWT身份验证,这是强制性的,同时我们也使用了CORS。问题是我们的JS代码将执行ajax调用,并且将在没有JWT授权标头的情况下调用HTTP Option飞行前请求。不幸的是,飞行前请求将被Istio阻止。如何解决?

1 个答案:

答案 0 :(得分:0)

不确定我是否正确理解了您的问题,但是我认为Service Entry将解决此问题。

  

ServiceEntry允许将其他条目添加到Istio的内部服务注册表中,以便网格中自动发现的服务可以访问/路由到这些手动指定的服务。服务条目描述了服务的属性(DNS名称,VIP,端口,协议,端点)。这些服务可能在网状网络外部(例如,Web API)或网状内部服务(不属于平台服务注册表的一部分)(例如,一组虚拟机与Kubernetes中的服务进行通信)。

您的示例的服务条目可能如下所示:

apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: external-svc-https
spec:
  hosts:
  - api.foobar.com
  location: MESH_EXTERNAL
  ports:
  - number: 80
    name: http
  resolution: DNS