在 7.x
中,elastic 公司开放了 x-pack
的认证功能,所以我们可以对 Kibana 的使用也进行登陆认证,保障了系统的安全性。
这样导致的问题是,我们将 Kibana 中创建好的报表通过 iFrame 的方式嵌入到其他系统中后,运营人员在查看报表时也需要进行登陆,有没有什么办法可以不登陆就查看报表呢?
可以通过 Nginx,将拼好的 Authorization 请求头传递给 Kibana 服务。
请求头的生成策略是:
1 | base64(用户名:密码) |
Nginx 示例配置:
1 | server { |
建议新建一个只有 read-only 权限的角色和用户,用他的 token 来进行免登陆查看报表。
通过 kibana 生成 iFrame 的嵌入代码后,只需将将里边的正常 kibana url 前缀部分替换为这个 Nginx 的地址和对应的端口号就可以了。
TIP
可以使用如下命令在 Linux 中生成 base64 编码:
1 | echo -n username:password | base64 |