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

时间:2019-03-22 05:29:59

标签: kubernetes reverse-proxy envoyproxy

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

例如:外部身份验证服务获取请求并处理身份验证标头,以防万一验证失败,它会抛出401。但是,如果成功,我想防止auth标头流向上游。

根据文档Ext Auth

  

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

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

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

我该如何实现?

2 个答案:

答案 0 :(得分:0)

请注意,我不是特使代理方面的专家,但是从我发现的范围来看,您实际上可以编写一个Lua脚本来删除标头。在文档中,您可以找到此类脚本的示例,并进行了一些修补,如果需要,您应该能够对其进行自定义:

-- Remove a response header named 'foo'
response_handle:headers():remove("foo")

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

答案 1 :(得分:0)

使用route级选项request_headers_to_remove删除 授权 标头如何?

请参见https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route_components.proto