0

我想做的事

调用由 oauth2 代理代理的 URL。如果没有可用的身份验证,oauth2 代理应该执行授权代码流。如果已经有可用的身份验证,则应将访问令牌设置为转发到上游的请求中的授权标头。

我试过的

根据我希望的文档--pass-authorization-header,在设置请求的令牌时,应将其添加到授权标头中。

我还尝试了--pass-access-token应该设置一个 X-Forwarded-Access-Token 标头。在我的服务中我也看不到这个标题。

有人可以向我解释我做错了什么吗?

4

1 回答 1

0

我找到了解决方案。

这篇关于 github 问题的帖子导致我犯了错误。

我确实误解了请求是什么,响应是什么以及如何使用 nginx 入口处理它们。

如果您将 OAuth2-Proxy 与 Kubernetes 入口一起使用,则使用 nginx 子请求(https://kubernetes.github.io/ingress-nginx/examples/auth/oauth-external-auth/)返回到 nginx 的数据实际上是HTTP 响应,因此您将需要使用 HTTP 响应标头( --pass-* 选项将请求标头配置到上游)。尝试 --set-authorization-header 然后你需要使用这个注解让 Kubernetes 获取子请求响应头并将其添加到代理请求头中:nginx.ingress.kubernetes.io/auth-response-headers https:// /kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#external-authentication

于 2020-10-30T14:38:20.817 回答