外部身份验证后删除特使代理中的上游标头

Ysa*_*sak 5 reverse-proxy kubernetes envoyproxy

在使用特使代理进行外部身份验证后,是否有任何方法可以删除上游的标头?我们计划为我们的内部 API 网关迁移到 Envoy 代理,但现在这是一个障碍。

例如:外部认证服务获取请求并处理认证头,万一验证失败,它会抛出401。但如果成功,我想阻止auth头进入上游。

根据文档Ext Auth

成功的检查允许授权服务在将原始请求分派到上游之前添加或覆盖来自原始请求的标头。这是通过配置授权响应中的哪些标头应该发送到上游来完成的。请参阅下面的 allowed_authorization_headers。

没有提到我是否可以完全删除上游的标题。

我可以选择覆盖标头,但这会导致上游服务器上的标头冲突。所以这不是一个可能的解决方案。

我怎样才能做到这一点?

aur*_*ius 2

请注意,我不是 envoy 代理方面的专家,但从我所发现的情况来看,您实际上可以编写一个能够删除标头的 Lua 脚本。在文档中,您可以找到此类脚本的示例,并且通过一些修改,您应该能够根据需要对其进行自定义:

-- Remove a response header named 'foo'
response_handle:headers():remove("foo")
Run Code Online (Sandbox Code Playgroud)

您可以在官方文档中找到更多信息。这里是config.filter.http.lua.v2.Lua,这里是脚本示例