quay.io OAuth2 代理:将承载令牌设置为授权 Header
quay.io OAuth2 Proxy: Setting Bearer token to Authorization Header
我想做什么
调用由 oauth2 代理代理的 URL。如果没有可用的身份验证,oauth2 代理应该执行授权代码流。如果已经有可用的身份验证,则应在转发到上游的请求中将访问令牌设置为授权 Header。
我试过的
根据 documentation 我预计,在设置 --pass-authorization-header
时,请求的令牌应添加到授权中 header。
我还尝试了 --pass-access-token
,它应该设置 X-Forwarded-Access-Token header。
我也看不到这个 header 在我的服务中。
有人可以向我解释我做错了什么吗?
我找到了解决方案。
关于 github 问题的 post 导致我犯了错误。
我确实误解了请求是什么,响应是什么以及如何使用 nginx 入口处理它们。
If you are using OAuth2-Proxy with a Kubernetes ingress using nginx subrequests (https://kubernetes.github.io/ingress-nginx/examples/auth/oauth-external-auth/) the data that comes back to nginx is actually an HTTP response, so you will need to use HTTP Response headers (the --pass-* options configure request headers to the upstream).
Try --set-authorization-header and then you need to use this annotation to have the Kubernetes take the subrequest response header and add it to the proxied request header: nginx.ingress.kubernetes.io/auth-response-headers
https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#external-authentication
我想做什么
调用由 oauth2 代理代理的 URL。如果没有可用的身份验证,oauth2 代理应该执行授权代码流。如果已经有可用的身份验证,则应在转发到上游的请求中将访问令牌设置为授权 Header。
我试过的
根据 documentation 我预计,在设置 --pass-authorization-header
时,请求的令牌应添加到授权中 header。
我还尝试了 --pass-access-token
,它应该设置 X-Forwarded-Access-Token header。
我也看不到这个 header 在我的服务中。
有人可以向我解释我做错了什么吗?
我找到了解决方案。
关于 github 问题的 post 导致我犯了错误。
我确实误解了请求是什么,响应是什么以及如何使用 nginx 入口处理它们。
If you are using OAuth2-Proxy with a Kubernetes ingress using nginx subrequests (https://kubernetes.github.io/ingress-nginx/examples/auth/oauth-external-auth/) the data that comes back to nginx is actually an HTTP response, so you will need to use HTTP Response headers (the --pass-* options configure request headers to the upstream). Try --set-authorization-header and then you need to use this annotation to have the Kubernetes take the subrequest response header and add it to the proxied request header: nginx.ingress.kubernetes.io/auth-response-headers https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#external-authentication