我正在尝试在我的 ELK 安装之前设置 OAuth2 授权。我正在使用oauth2_proxy。想法是使用 Google 作为 SSO,从 SSO 质询中提取用户名,将此用户名设置为基本身份验证(具有固定密码)以登录 Kibana。
我在获取用户名并将其设置为基本身份验证字符串时遇到了困难。似乎该变量$remote_user
没有被重视。如果我硬编码一个有效的用户名:密码,它会让我登录。
这是我到目前为止的配置:
- oauth2_proxy 在端口 4180 上运行
- nginx 监听 80/443 并通过代理传递到 localhost:4180 (oauth2_proxy)
- oauth2_proxy 使用 localhost:8080 作为上游(nginx)执行 SSO
- nginx 监听 8080 并通过代理传递到 localhost:5601 (kibana)
像这样的东西:
这里的conf文件:
oauth2_proxy 启动字符串
oauth2-proxy
--email-domain="example.com"
--upstream="http://127.0.0.1:8080/"
--approval-prompt="auto"
--redirect-url="https://example.com/oauth2/callback"
--cookie-secret=redacted
--set-xauthrequest=true
--pass-user-headers=true
--pass-authorization-header=true
oauth2_proxy.conf
server {
listen 443 ssl;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:4180;
}
[letsencrypt config omitted]
}
kibana.conf
server {
listen 8080;
location / {
proxy_pass http://127.0.0.1:5601;
set $auth_string "${remote_user}:<my_strong-password>";
set_encode_base64 $encoded_string $auth_string;
proxy_set_header Authorization "Basic $encoded_string";
#to manage logout redirect
rewrite /login https://example.com/oauth2/sign_in redirect;
}
}
我的问题是它${remote_user}
是空的,我该如何评估它?我也尝试过$upstream_http_x_auth_request_user
,$upstream_http_x_auth_request_email
但没有运气。
你看到任何明显的错误吗?