1

我正在尝试在我的 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但没有运气。

你看到任何明显的错误吗?

4

0 回答 0