我尝试在安装ELK之前设置OAuth2授权。我使用oauth2_proxy。想法是使用Google作为SSO,从SSO挑战中提取用户名,将此用户名设置为基本授权(使用固定密码)以登录Kibana。
我在获取用户名并将其设置为基本的auth字符串时遇到了困难。看起来变量$remote_user
没有赋值。如果我硬编码了一个有效的用户名:密码,它会让我登录。
这是我目前的配置:
- 在端口4180上运行的oauth2_proxy
- nginx在80/443上侦听,代理传递到本地主机:4180(oauth2_proxy)
- 使用localhost:8080作为上游执行SSO的oauth2_proxy(nginx)
- 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
- 授权2代理配置文件**
server {
listen 443 ssl;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:4180;
}
[letsencrypt config omitted]
}
- kibana.配置**
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
,但没有成功。
您是否发现任何明显的错误?
1条答案
按热度按时间uxh89sit1#
如果你在nginx配置中指定了固定密码,为什么你需要提取用户名?
相反,你可以在Kibana配置中启用匿名访问,并摆脱nginx代理。https://stackoverflow.com/a/75416817/3758005