跳到主内容

Grafana

在 Grafana 中使用 Casdoor 进行身份验证

Grafana支持通过OAuth进行身份验证。 因此,用户使用Casdoor登录Grafana非常容易。 只需要几个步骤和简单的配置就可以实现。

这是一个关于如何在Grafana中使用Casdoor进行身份验证的教程。 在您继续之前,请确保您已安装并运行了Grafana。

步骤1:在Casdoor中为Grafana创建一个应用

这是在Casdoor中创建应用的一个示例:

在Casdoor中创建一个应用

请复制客户端密钥和客户端ID以进行下一步操作。

请添加Grafana的回调URL。 默认情况下,Grafana的OAuth回调是/login/generic_oauth。 所以请正确地连接这个URL。

步骤2:修改Grafana的配置

默认情况下,OAuth的配置文件位于Grafana的工作目录中的conf/defaults.ini

请找到部分[auth.generic_oauth]并修改以下字段:

[auth.generic_oauth]
name = Casdoor
icon = signin
enabled = true
allow_sign_up = true
client_id = <来自上一步的客户端ID>
client_secret = <来自上一步的客户端秘密>
auth_url = <Casdoor端点>/login/oauth/authorize
token_url = <Casdoor端点>/api/login/oauth/access_token

关于HTTPS

如果你不希望为Casdoor启用HTTPS,或者你在没有启用HTTPS的情况下部署Grafana,请同时设置tls_skip_verify_insecure = true

关于使用Casdoor登录后的redirectURI

如果在Grafana中使用Casdoor登录后重定向URI不正确,您可能需要配置root_url

[server]
http_port = 3000
# 用于从浏览器访问Grafana的公开面向的域名
domain = <你的IP地址>
# 完整的公开面向的URL
root_url = %(protocol)s://%(domain)s:%(http_port)s/

相关链接:

  1. Grafana 文档

  2. Grafana 默认的ini

关于角色映射

您可能希望配置role_attribute_path,通过role_attribute_path将您的用户角色映射到Grafana。

[auth.generic_oauth]
role_attribute_path = contains(roles[*].name, 'admin') && 'Admin' || contains(roles[*].name, 'editor') && 'Editor' || 'Viewer'
role_attribute_strict = true
allow_assign_grafana_admin = true

这里的role_attribute_path后的JMESPath表达式非常重要。 请参考Grafana文档。

步骤3:查看是否有效

关闭Grafana并重新启动它。

前往登录页面。 你应该会看到类似这样的东西:

最终结果