【问题标题】:Istio Token Validation via Proxy通过代理验证 Istio 令牌
【发布时间】:2021-11-12 22:36:03
【问题描述】:

Istio 支持 AuthZAuthN 服务,但有没有办法通过代理实现令牌验证?

示例:用户/客户端向 Service-A 发送请求,请求命中 istio-ingressGateway,如果令牌有效,则网关通过另一个服务(验证服务)验证令牌,如果令牌无效,用户/客户端可以获取用户数据发送错误等效响应。

【问题讨论】:

  • 您使用的是哪个版本的 Kubernetes 和 Istio?为什么要外部验证服务?你看到this page了吗?
  • Kubernetes 1.21,Istio:1.11.2,是的,我读过这个页面。使用内部服务或通过oauth2-proxy 社交关系验证令牌
  • 请看this doc。它可以帮助你。请让我知道是否是。
  • 这是我用 istio 搜索 oauth2-proxy 时发现的第二篇博客,他使用 Envoy Filter 进行授权,但是最新的 istio 提供了外部授权 今天我用 istio 成功将未经授权的请求重定向到 oauth-proxy2外部授权,现在在身份验证说登录失败 CSRF 令牌未找到后面临问题
  • 这个方法成功实现了,有时间会分享博客????

标签: validation kubernetes istio istio-gateway


【解决方案1】:

您可以使用Netflix Zuul 编写一个微网关服务,这将是您的 Istio 网关的登陆服务。它可以使用Zuul filters 进行快速令牌验证,然后将请求转发到所需的服务或返回令牌错误响应。您可以使用此服务来发布令牌并托管 JWT 令牌的 JWK 密钥。 I've written a Java implementation for the same.

否则,您可以使用内部 Nginx 服务器作为所有请求的登陆,然后使用 http_auth_request_module 进行快速身份验证,然后代理转发到其他服务。你可以在Nginx documentation.找到它

很遗憾,到目前为止,我还没有找到 Istio 提供的任何此类内容。

【讨论】:

  • AuthZ 服务器呢,istio 有 istio External Authorization 可以用吗?
  • 是的,也可以调整和使用。
【解决方案2】:

发布社区 wiki 答案以获得更好的可见性。正如 cmets 中提到的Tushar Mistry - 问题基于this article 解决:

这是我用 istio 搜索 oauth2-proxy 时发现的第二篇博客,他使用 Envoy Filter 进行授权,但是最新的 istio 提供了外部授权 今天我成功将未授权的请求重定向到 oauth-proxy2 与 istio 外部授权,现在面临身份验证后的问题说登录失败 CSRF token not found

及以后:

这个方法实现成功,如果有时间会分享一个博客。

另见Better External Authorization

【讨论】:

    猜你喜欢
    • 2015-11-04
    • 1970-01-01
    • 1970-01-01
    • 2021-02-18
    • 2020-11-02
    • 2020-07-17
    • 2016-09-11
    • 2013-06-12
    • 2012-04-11
    相关资源
    最近更新 更多