通过 Keycloak 实现 Grafana 单点登录

Keycloak作为一个开源软件产品,旨在为现代的应用程序和服务,提供包含身份管理访问管理(英语:Access Management)功能的单点登录工具。

通过 keycloak 实现 grafana 的单点登录是一个非常不错的选择,实现也比较方便。

一、keycloak安装

使用 docker 安装 keycloak 非常简单与方便,安装命令如下:

docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin -d quay.io/keycloak/keycloak:18.0.0 start-dev

安装完成后,可以访问 http://localhost:8080 进行测试,用户名/密码:admin/admin。

二、grafana安装

grafana 有企业版(grafana-enterprise)和开源版两种(grafana-oss),一般选择开源版,开源版安装命令如下:

docker run -d -p 3000:3000 --name grafana grafana/grafana-oss:8.3.3

执行完成后,访问 http://localhost:3000 进行测试。

三、配置keycloak

keycloak的配置可以查看我的另一篇博文:在Docker上安装keycloak及简单使用_youzhouliu的博客-CSDN博客

四、配置grafana

进入 grafana 容器,使用命令类似如下:

docker exec -it 1fed9a508558 bash

编辑 /etc/grafana/grafana.ini,修改以下配置,通用oauth配置:

[server]
root_url = http://localhost:3000/
[auth.generic_oauth]
allow_sign_up = true
api_url = http://localhost:8080/realms/grafana/protocol/openid-connect/userinfo
auth_url = http://localhost:8080/realms/grafana/protocol/openid-connect/auth
client_id = grafana
client_secret = B1dllYApv88FHkkLQDqCwv2aRH5hHwoU
enabled = true
name = grafana
role_attribute_path = role
root_url = http://localhost:3000/
scopes = openid email
token_url = http://localhost:8080/realms/grafana/protocol/openid-connect/token

编辑方式,将 docker 容器中的配置文件拷贝到物理机,修改完成后,再从物理机拷贝到 docker 容器中,覆盖原来的配置文件,操作语句类似如下:

docker 容器拷贝到物理机:
docker cp 1fed9a508558:/etc/grafana/grafana.ini ./
物理机拷贝到 docker 容器:
docker cp grafana.ini 1fed9a508558:/etc/grafana/grafana.ini

执行完成后,重启 grafana,语句类似如下:

docker restart grafana

五、访问 grafana

在 keycloak 中配置好正确的 用户名、密码 后,重新访问 grafana,可以看到类似如下界面:

 点击红色方框部分,得到如下界面:

 输入 keycloak 中配置的 用户名 密码,就可以进入 grafana 操作界面。

猜你喜欢

转载自blog.csdn.net/youzhouliu/article/details/124933680