Dan*_*aub 5 nginx oauth-2.0 kubernetes nginx-ingress
我在 Kubernetes 集群中遇到了oauth2 代理和 Ingress Nginx(最新版本)的问题,其中X-Auth-Request标头在标准 oauth 身份验证流程中未传递到客户端。我专门使用 Azure 作为身份验证提供程序。
这是我的 oauth 代理配置的相关部分:
pass_access_token = true
pass_authorization_header = true
pass_user_headers = true
set_xauthrequest = true
Run Code Online (Sandbox Code Playgroud)
当我显式调用 时/oauth2/auth,我会按预期获得标头。但是,在标准 OAuth2 身份验证流程中,任何请求都不会返回任何标头。
这种情况有点类似于这里的另一个问题:Oauth2-Proxy do not pass X-Auth-Request-Groups header,但就我而言,我没有收到任何X-Auth-Request标头,除非我/oauth2/auth直接调用。
我还尝试将以下代码片段添加到我的应用程序 Ingress 配置中,但没有成功:
nginx.ingress.kubernetes.io/configuration-snippet: |
auth_request_set $email $upstream_http_x_auth_request_email;
access_by_lua_block {
if ngx.var.email ~= "" then
ngx.req.set_header("X-Auth-Request-Email", ngx.var.email)
end
}
Run Code Online (Sandbox Code Playgroud)
我已经完成了多种配置,阅读了大量博客文章,并搜索了 GitHub 问题,但一直无法解决这个问题。有谁对可能导致这种行为的原因有任何见解吗?
这个方法会起作用
nginx.ingress.kubernetes.io/configuration-snippet: |
auth_request_set $email $upstream_http_x_auth_request_email;
add_header X-Auth-Request-Email $email;
Run Code Online (Sandbox Code Playgroud)
唯一的缺点是它会将标头添加到所有 http 请求中,即使是 css/js 文件
| 归档时间: |
|
| 查看次数: |
1150 次 |
| 最近记录: |