Web浏览器绕过Istio最终用户身份验证

问题描述 投票:0回答:2

奇怪的事情正在发生!

我的群集中有一个Keycloak和一个简单的Httpbin应用程序。

我已经设置了Istio来使用keycloak验证用户(如Istio documentation中所述)

apiVersion: "authentication.istio.io/v1alpha1"
kind: "Policy"
metadata:
  name: auth-token
spec:
  targets:
    - name: httpbin
  origins:
    - jwt:
        issuer: "http://10.233.11.203/auth/realms/istio"
        jwksUri: "http://10.233.11.203/auth/realms/istio/protocol/openid-connect/certs"
  principalBinding: USE_ORIGIN

我尝试时使用以下配置设置:

curl <IP_OF_HTTPBIN>

我得到Origin authentification failed这是完全正常的,因为我没有提供任何访问令牌。


现在,当我使用我的网络浏览器访问应用程序时,我会发现某种错误,但它不起作用......

我的问题是它应该不起作用。浏览器没有更多授权,然后curl命令是...


有关信息,我使用kubectl port-forward和反向代理从我的浏览器访问应用程序。

authentication keycloak istio
2个回答
1
投票

kubectl port-forward将流量从您机器的localhost直接转发到k8 pod,绕过所有Istio身份验证。当您针对httpbin的公共IP运行curl时,请求由Istio的网关处理并验证jwt令牌。

Istio的jwt验证发生在下游并独立于您的pod。如果直接点击您的pod,则会故意绕过最终用户身份验证以进行开发。这使您可以独立于身份验证方式开发服务。


0
投票

我找到了解决这个问题的方法......如果我使用网关访问应用程序,那么浏览器也会获得Origin authentification failed

但这并没有解释为什么首先浏览器绕过istio的政策并且卷曲不...

© www.soinside.com 2019 - 2024. All rights reserved.