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