Istio 从 ext-auth 中排除服务

2024-03-09

大家好,我已经在 minikube 上设置了 istio 并在网关上设置了 envoy ext-auth 过滤器。我有两个微服务在不同的 Pod 中运行,向外界公开虚​​拟服务 /auther 和 /appone 。我设置的 ext-auth 过滤器会将每个请求发送到 /auther/auth 进行身份验证,如果响应为 200,则让请求通过并到达它想要的其他服务。 问题是 istio 正在对所有端点(甚至 /auther)的每个请求进行身份验证。我想排除发送到 /auther 进行身份验证的请求(因为 auther 服务将自行处理身份验证)。但它不起作用。 这是我的 ext-auth 过滤器:

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: authn-filter
  namespace: istio-system
spec:
  workloadSelector:
    labels:
      istio: ingressgateway
  configPatches:
    - applyTo: HTTP_FILTER
      match:
        context: GATEWAY
        listener:
          filterChain:
            filter:
              name: "envoy.http_connection_manager"
              subFilter:
                name: "envoy.router"
      patch:
        operation: INSERT_BEFORE
        value:
          name: envoy.ext_authz
          typed_config:
            "@type": "type.googleapis.com/envoy.config.filter.http.ext_authz.v2.ExtAuthz"
            http_service:
              server_uri:
                uri: http://auther.default.svc.cluster.local
                cluster: outbound|3000||auther.default.svc.cluster.local
                timeout: 1.5s
              path_prefix: /auther/auth?user=
              authorizationRequest:
                allowedHeaders:
                  patterns:
                    - exact: "cookie"
                    - exact: "authorization"
              authorizationResponse:
                allowedClientHeaders:
                  patterns:
                    - exact: "set-cookie"
                    - exact: "authorization"


这是我试图实现的异常过滤器:

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: bypass-filter
  namespace: default
spec:
  configPatches:
    # The first patch adds the lua filter to the listener/http connection manager
    - applyTo: HTTP_ROUTE
      match:
        context: GATEWAY
        routeConfiguration:
          vhost:
            name: auther
            route:
              name: auther
      patch:
        operation: MERGE
        value:
          typed_per_filter_config:
            envoy.ext_authz:
              "@type": type.googleapis.com/envoy.config.filter.http.ext_authz.v2.ExtAuthzPerRoute
              disabled: true

第一个过滤器工作正常。但第二个将从身份验证外部过滤器中排除身份验证服务的服务不起作用。


您已设置@type to envoy.config.filter.http.ext_authz.v2.ExtAuthzPerRoute,但正确的路径是envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute.

此外,路由名称必须与虚拟服务中的名称匹配。并且它必须部署到istio-system命名空间作为你的authn-filter。这个配置对我有用:

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: bypass-authn
  namespace: istio-system
spec:
  workloadSelector:
    labels:
      istio: ingressgateway
  configPatches:
    - applyTo: HTTP_ROUTE
      match:
        routeConfiguration:
          vhost:
            route:
              name: my-route #from virtual service http route name
      patch:
        operation: MERGE
        value:
          name: envoy.ext_authz_disabled
          typed_per_filter_config:
            envoy.ext_authz:
              "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute
              disabled: true
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Istio 从 ext-auth 中排除服务 的相关文章

  • Javascript:如何过滤对象数组并对结果求和

    我有一个对象数组 var example a 1 b 2 c 3 a 4 b 5 c 6 a 7 b 8 c 9 我正在尝试添加所有不对应的值c 我已经设法用 console log test filter x gt x c gt 3 过滤
  • System.Security.Claims 命名空间的成员不可用?

    我正在学习 NET 4 5 中新的基于声明的身份验证方法 并使用控制台应用程序来执行此操作 根据 MSDNhere http msdn microsoft com en us library system security claims c
  • 身份验证后以编程方式添加角色

    我有以下 JSF 2 1 登录表单 在 Glassfish 3 1 中运行
  • 下一个验证 |当用户对象有太多项目时,会话请求没有数据

    我会尽力为我解释我的问题 我使用 Strapi 作为后端 使用 Nextjs 作为前端 对于身份验证 我使用 NextAuth nextauth js const options providers Providers Credential
  • 多个组合框绑定到一个公共源,强制执行不同的选择

    我正在尝试将多个 ComboBox 绑定到一个公共源集合 并强制执行一旦进行 ComboBox 选择 该所选项目就有可能从其他 ComboBox 中删除 该集合是动态构建的 因此我是用代码来完成的 到目前为止 我已经尝试以多种方式实现这一点
  • Magento 外部登录不会创建会话 cookie

    我正在尝试从外部站点替换 Magento 的相当笨拙的 ajax 登录 该网站使用 Magento 作为商店 站点和 magento 商店都有自己的登录信息 因此当用户登录时 两者同步非常重要 这是通过每次页面重新加载时进行 ajax 调用
  • 身份验证后如何退出 Google

    所以我的应用程序可以选择使用 Google 登录 单击 Google 提供的按钮后 将打开一个 Web 视图并让用户输入其凭据 允许应用程序访问其信息后 应用程序将用户登录并将 SignInViewController 更改为 TabBar
  • 在 Django Admin 中隐藏 Auth 部分 [重复]

    这个问题在这里已经有答案了 在 Django 管理中 有什么方法可以隐藏 Auth 部分吗 假设这是 Django 和准系统项目的全新安装 没有应用程序 只有管理员 您可以使用admin site unregister from djang
  • 如何在 Matlab 中对数组应用低通或高通滤波器?

    有没有一种简单的方法可以将低通或高通滤波器应用于 MATLAB 中的数组 我对 MATLAB 的强大功能 或数学的复杂性 有点不知所措 需要一个简单的函数或一些指导 因为我无法从文档或网络搜索中找到答案 看着那 这filter http w
  • 自定义用户返回空 get_all_permissions()

    我只是想开始工作Permissions了解这是如何工作的 在外壳中我有空set 结果来自user test get all permissions I see 这个问题 https stackoverflow com questions 2
  • 用户注册错误:没有这样的表:auth_user

    我正在尝试使用 Django 的默认身份验证来处理注册和登录 setting py INSTALLED APPS django contrib admin django contrib auth django contrib content
  • 如何向 Scotty 中间件添加基本身份验证?

    我目前正在制作 Scotty API 但找不到任何 basicAuth 实现的示例 Wai Middleware HttpAuth 具体来说 我想将基本身份验证标头 用户 通行证 添加到我的某些端点 即以 admin 开头的端点 我已经设置
  • 为移动应用程序创建 API - 身份验证和授权

    Overview 我正在寻找为我的应用程序创建一个 REST API 最初 主要目的是供移动应用程序 iPhone Android Symbian 等 使用 我一直在研究基于 Web 的 API 的身份验证和授权的不同机制 通过研究其他实现
  • 在本地安全存储用于 Web 服务的密码

    我有一个应用程序 通过发送用户名和密码来对第三方 Web 服务进行身份验证 目前 我每次启动应用程序时都会在 winform 上输入密码 但我需要它自动登录 我想比更安全地存储用户名 密码 Dim username as String us
  • 如何使用多重身份验证 - firebase?

    我有一个注册屏幕 其中包含 用户名 电子邮件 电话号码 密码 在本例中 我使用电话号码身份验证来验证号码 因此在用户验证他的号码后 我将他的数据保存到 firebase DB 中 所以在那之后 我将下摆导航到登录屏幕 应该包含电子邮件 密码
  • 在shiny中过滤传单地图数据

    我在用传单地图设置这个闪亮的东西时遇到了麻烦 我的原帖 https stackoverflow com questions 50111566 applying leaflet map bounds to filter data within
  • 使用 Django REST 框架进行 SAML SSO 身份验证

    我目前正在开发 AngularJS 前端和 Django REST 后端 我一直在使用Django rest auth https github com Tivix django rest auth过去需要对两者之间的连接进行身份验证 但现
  • Twitter 登录说明

    我想在 Android 中创建一个 Twitter 应用程序 为此 我想创建一个登录页面并登录到 Twitter 为此 我们需要消费者密钥和消费者密钥 这是什么意思 要创建此登录页面 除了 Twitter 帐户之外 我们还需要其他任何东西吗
  • 使用 Apache HTTPd 模块的 OAuth 2.0 身份验证

    是否可以使用 Apache HTTPd 服务器模块来实现 OAuth 2 0 或 1 0 我选择这条路线是因为每个请求都会首先到达 HTTPd 模块 因此我必须从那里进行身份验证 如果可能的话 请分享相关链接 我要补充一下尤金尼奥的答案mo
  • Asp.net Identity 注销其他用户

    我正在使用 Asp net Identity 来验证用户身份 并尝试从管理端锁定任何用户 但是当我锁定任何在线用户时 它并没有注销 我读过很多关于我的问题的评论 但它们都不起作用 我尝试使用 UserManager UpdateSecuri

随机推荐

  • 如何防止用户使用 dotnet core 和 RESTful API 访问其他用户的数据?

    我正在尝试找到一个没有被广泛讨论的简单问题的最佳解决方案 我的应用程序有很多可以创建和编辑数据的用户 用户应该只查看和编辑他的数据 而不是其他人的数据 想想爱丽丝 她有一家餐厅 A 有一个菜单 MenuA 而鲍勃有一家餐厅 B 有一个菜单
  • 软件可扩展性测试是否有明确的模式?

    我最近对识别软件可扩展性测试的模式非常感兴趣 由于不同软件解决方案的本质不同 可伸缩性测试软件问题的良好解决方案似乎与设计和实现软件的问题一样多 对我来说 这意味着我们可能可以为此类广泛使用的测试提炼出一些模式 为了消除歧义 我会提前说明我
  • 在Mysql表中保存座位安排

    你好 有人可以建议我一种保存座位安排的方法 它是 mysql 表中的 nXm 矩阵 以下是我们如何生成 nXm 表 管理员指定总线的行数和列数 管理员选择矩阵的特定元素是否是 Seat Passage Sleeper 注 一个卧铺占用2个元
  • didSelectRowAtIndexPath 未调用到 cellForRowAtIndex 的 UIButton

    我知道这里有很多关于这个问题的重复项 但我的要求是我在一个单元格上添加了 2 个 UIButtons 并且这两个按钮将打开两个不同的视图 如果我将属性 userInteractionEnabled 设置为 YES 那么它不会从下面的代码中获
  • 使用 Windows 成像组件 (WIC) 的 Delphi 2007

    我需要在Delphi 2007中读取一些大约1 7mb的图片并将其从jpg转换为bmp 有些图片被剪切 灰度或转换后最差 我进行了搜索 但没有找到在 delphi 2007 中添加像 TWicImage 这样的 WIC 例程的技巧 我在某处
  • 在 JSR-310 中计算修改后的儒略日

    如何从 JSR 310 类计算修改后的儒略日 例如LocalDate 在 JDK 8 中 具体来说 这是计算连续计算天数 http en wikipedia org wiki Julian day被称为 修改儒略日 而不是日期儒略历系统 h
  • 当我使用 pip 安装任何包时出现 WinError 10013

    我试图在 Windows 上的 Python 环境中安装软件包 每次这样做时 pip install pacakgename 我收到此错误 Retrying Retry total 4 connect None read None redi
  • 如何在 Visual Studio 中使用 C++ shlwapi 库?

    我的程序使用PathFileExistsW https learn microsoft com windows win32 api shlwapi nf shlwapi pathfileexistsw函数来自shlwapi h includ
  • 控制器如何接收 HttpPost 方法上的参数?

    从控制器中取出此代码片段 例如 public ActionResult Login if User Identity IsAuthenticated return RedirectToAction Index Home else retur
  • 已移至 Tensorflow 2.0,训练现在在第三步后挂起

    最近我决定从 Tensorflow GPU 变体 版本 1 14 迁移到当前版本 2 0 我当前的设置是 Tensorflow GPU 变体 2 0 库德恩7 6 4 CUDA 10 Python 3 6 集成开发环境 Visual Stu
  • AJAX GET 竞争条件?

    我试图以类似于以下的方法跟踪在我的网站上单击链接时的事件 a href example class track Example a
  • 如何在 IntelliJ IDEA 中使用键盘弹出错误窗口

    当使用 IntelliJ IDEA 并编写代码时 当您编写的代码出现错误时 我知道让 IDEA 显示错误详细信息的唯一方法是将鼠标光标悬停在问题上 但这需要我将手从键盘移到鼠标上 是否有一个热键会导致出现带有错误消息的弹出窗口 或者是否有配
  • Angular 2(Ionic 2)在显示页面时调用页面中的函数

    每当我的主页出现在angular 2 ionic 2 应用程序已加载我想要呼叫服务 功能 如何实现这一目标 第一次加载应用程序时 加载主页 我可以在constructor 但是当用户开始使用该应用程序并且push新页面进入nav contr
  • Response.write 和 ASP.NET 控件

    请看下面的代码 Protected Sub Page Load ByVal sender As Object ByVal e As EventArgs Handles Me Load Response Write table tr td s
  • Docker 服务禁用内存交换

    我可以为docker服务设置 MemorySwap 和 MemorySwappiness 吗 我想禁用 docker 容器的内存交换 由 docker 服务启动 但我不想为主机禁用它 MemorySwappiness 中的 1 值意味着什么
  • 在MFC项目中使用多个资源文件

    我在 VS2015 中使用 MFC C 11 并且有一组独立的 GUI 我想在多个项目中使用它们 我知道这可以通过创建一个 rc 文件来实现 该文件可以包含在每个项目的主 rc 文件中 使用多个资源文件 https msdn microso
  • System.DirectoryServices.DirectoryServicesCOMException:发生操作错误

    我有相同的网络应用程序在其他三台服务器上运行 有人知道为什么第四台服务器无法工作吗 查看错误和堆栈跟踪 发生操作错误 描述 执行期间发生未处理的异常 当前的网络请求 请查看堆栈跟踪以了解更多信息 有关错误及其在代码中的来源的信息 异常详细信
  • 重新定位 Jquery UI 自动完成结果框

    我正在使用 Jquery UI 自动完成插件作为直接的搜索词建议工具 它已启动并运行 没有任何问题 只是我无法移动结果框 我基本上需要将其向左移动 20 像素 向下移动 4 像素 我尝试覆盖 Jquery UI CSS 但无法重新定位该框
  • 生成包含 `partykit:mob()` 对象的并排节点模型的表

    假设我使用以下方法拟合模型partykit mob 之后 我想生成一个包含所有节点的并排表 包括使用整个样本拟合的模型 在这里我尝试使用stargazer 但其他方式也非常受欢迎 下面是一个例子并尝试获取表格 library partyki
  • Istio 从 ext-auth 中排除服务

    大家好 我已经在 minikube 上设置了 istio 并在网关上设置了 envoy ext auth 过滤器 我有两个微服务在不同的 Pod 中运行 向外界公开虚 拟服务 auther 和 appone 我设置的 ext auth 过滤