nginx 后面的 Grafana 6.7 auth 代理,用于自动 UI 登录

Posted

技术标签:

【中文标题】nginx 后面的 Grafana 6.7 auth 代理,用于自动 UI 登录【英文标题】:Grafana 6.7 auth proxy behind nginx for automatic UI login 【发布时间】:2020-07-02 19:02:06 【问题描述】:

我的 Grafana 服务器前面有一个 nginx 反向代理。

我正在尝试使用 Nginx auth_basic 自动将用户登录到 Grafana。

我想这样做,以便能够自动登录放置在另一个 Web 应用程序(不在同一网络上)中的嵌入式 iframe 图

nginx.conf

server 
    server_name grafana.mydomain.com;
    ...
    location / 
            proxy_pass http://grafana.mydomain.com;
    
    location /grafana/ 
            proxy_pass http://grafana.mydomain.com;
            auth_basic      "Restricted grafana.mydomain.com";
            auth_basic_user_file    /etc/nginx/htpasswd/grafana.mydomain.com;
            proxy_set_header X-WEBAUTH-USER $remote_user;
            proxy_set_header Authorization "";
    

grafana.ini

[auth.basic]
enabled = true

[security]
allow_embedding = true
cookie_samesite = lax
root_url = https://grafana.mydomain.com/grafana/

[auth.proxy]
enabled = true
header_name = X-WEBAUTH-USER
header_property = username
auto_sign_up = true
sync_ttl = 60
enable_login_token = true

此设置发生的情况是,如果我转到 grafana.mydomain.com,它会显示为正常登录,并且一切正常 如果我在使用 Nginx 登录后转到grafana.mydomain.com/grafana/,Grafana 会返回:

如果我尝试点击页面上的任何链接,则会出现很多未经授权的错误,并且我会被注销。

我一直在玩这些设置:

proxy_set_header X-WEBAUTH-USER root_url enable_login_token cookie_samesite

但无法使事情正常进行

用户是在 Grafana 内部创建的,所以我尝试赋予创建的用户完全权限:

但我仍然收到未经授权的错误和 404 错误

我什至不确定这是实现我想要做的事情的正确途径,有什么建议吗?

【问题讨论】:

【参考方案1】:

我已删除这两个位置并为/ 位置放置了身份验证 然后我切换回cookie_samesite = none,它开始按预期工作。

这样做我失去了正常登录grafana的可能性

【讨论】:

我最近也不得不这样做。最终对我来说最好的解决方案是使用 Treafik 设置两条路线。一个注入 Header,另一个直接通过 grafana。

以上是关于nginx 后面的 Grafana 6.7 auth 代理,用于自动 UI 登录的主要内容,如果未能解决你的问题,请参考以下文章

Nginx 反向代理背后的 Grafana 返回 alert.title

CentOS 6.7 配置 yum 安装 Nginx

CentOS 6.7 配置 yum 安装 Nginx

F5 以6.7亿美金收购 NGINX

6.7亿美元!F5收购Nginx,以增强云原生和多云功能

喜大普奔!F5以6.7亿美元收购Nginx