调用由oauth2代理代理的URL。如果没有身份验证,则oauth2代理应执行授权码流程。如果已有认证可用,则应在请求中将访问令牌设置为“授权标头”,然后转发给上游。
根据documentation,我希望在设置--pass-authorization-header
时,应将请求的令牌添加到授权标头中。
我还尝试了--pass-access-token
,它应该设置一个X-Forwarded-Access-Token标头。
我也看不到此标头。
有人可以告诉我我在做什么错吗?
答案 0 :(得分:0)
我找到了解决方法。
这个在github问题上的post导致我犯了错误。
我确实误解了请求是什么,响应是什么以及如何使用nginx入口处理它们。
如果您将OAuth2-Proxy与使用nginx子请求(https://kubernetes.github.io/ingress-nginx/examples/auth/oauth-external-auth/的Kubernetes入口一起使用,则返回nginx的数据实际上是HTTP响应,因此您将需要使用HTTP Response标头(- 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