我试图按以下说明在Istio中使用JWT设置最终用户身份验证:https://istio.io/help/ops/security/end-user-auth/

以下是重现步骤:

  • 在本地设置Istio:https://github.com/nheidloff/cloud-native-starter/blob/master/LocalEnvironment.md
  • 设置HTTPS,示例服务和入口:https://github.com/nheidloff/cloud-native-starter/blob/master/istio/IstioIngressHTTPS.md
  • kubectl apply -f https://github.com/nheidloff/cloud-native-starter/blob/master/istio/access.yaml

  • 我创建了一个小应用程序来为用户获取JWT token 。我已经通过https://jwt.io/检查 token 是否有效。

    当我调用以下URL时,会出现相同的错误:
    curl -k https://web-api.local:31390/web-api/v1/getmultiple
    curl -k https://web-api.local:31390/web-api/v1/getmultiple --header 'Authorization: Bearer eyJhbGciOiJIU.........wOeF_k'
    

    HTTP状态码:503
    上游连接错误或在头之前断开连接/重置

    我在istio-proxy日志中没有看到与这些请求相关的任何条目。我认为这意味着在请求甚至到达代理之前就出了问题。
    kubectl logs web-api-v1-545f655f67-fhppt istio-proxy
    

    我已经尝试过Istio 1.0.6和1.1.1。

    我已经用尽了其他尝试方法。任何帮助深表感谢!谢谢!

    最佳答案

    我发现了问题。诀窍是从我的Yaml中删除MTL。当我阅读Istio文档时,听起来这是先决条件。

    关于security - 在Istio中使用JWT进行的最终用户身份验证提供了 'upstream connect error',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55491411/

    10-16 08:08