【发布时间】:2019-08-23 17:54:39
【问题描述】:
我正在使用 istio 设置最终用户身份验证。我的网格中有服务 A 和服务 B,并且服务 B 应用了 jwt 策略,因此集群发出的请求需要授权令牌才能访问。
但是,我发现如果服务 A 需要访问服务 B,它也返回 401 表示需要令牌,我如何绕过网格内的身份验证并将其仅应用于网格外的流量?
【问题讨论】:
标签: istio
我正在使用 istio 设置最终用户身份验证。我的网格中有服务 A 和服务 B,并且服务 B 应用了 jwt 策略,因此集群发出的请求需要授权令牌才能访问。
但是,我发现如果服务 A 需要访问服务 B,它也返回 401 表示需要令牌,我如何绕过网格内的身份验证并将其仅应用于网格外的流量?
【问题讨论】:
标签: istio
我认为使用不同的身份验证方法来安排对相同 K8s 目标服务的访问是不可行的,假设外部网格访问者有权使用 JWT 令牌针对此服务,但是内部网格客户端不应该尊重这一点政策规则。
深入了解Origin authentication(最终用户身份验证)design 方面,您可能会发现 Istio Policy 强烈依赖 target 工作负载,代表特定的 K8s 服务对象。因此,您无法根据初始请求到达目标 k8s 服务的方式来更改 JWC 策略行为。
我会说你可以在顶级istio-ingressgateway服务级别应用JWT策略,因此除了K8s系统发现的mesh service-to-service通信之外,所有对mesh服务的向外网络请求都将在这个阶段进行身份验证,可以通过mTLS 传输通道保护。但是这个解决方案需要重新考虑当前的微服务设计,这会影响到整个网格服务的授权和身份验证方法。
【讨论】: