Grafana对接OAuth2登录

Grafana对接OAuth2方式登录

一、前言

​ 虽然我对Grafana不是很了解,但是最近业务需要,要让Grafana对接自研系统的用户登录,在Grafana的官网讲解的很详细,特别是作者很活跃,对于用户提出的问题都有积极回答,Grafana官网https://grafana.com。

二、对接工作

​ Grafana对接OAuth2整体还是比较简单,只需要修改配置文件即可。因为我在本地用的是Windows版本的Grafana,所以修改的配置文件是defaults.ini,需要修改的配置项不是很多,其它如果有需要可以根据需求进行配置,具体配置详情如下

[paths]
data = data
# 临时数据存放保存周期
temp_data_lifetime = 24h
# 日志文件存放地址
logs = data/log
# Grafana安装的插件地址
plugins = data/plugins

#################################### Server ##############################
[server]
# 协议
protocol = http

# 端口
http_port = 3000

# 主机
domain = localhost

# 根路径,用于OAuth2回调地址
# 如果配置成这样,回调地址就是:http://localhost:3000/login/generic_oauth
# 这个回调地址用于获取授权码时回调
root_url = %(protocol)s://%(domain)s:%(http_port)s/


#################################### Database ############################
[database]
# 配置Grafana数据持久化方式,当启动Grafana时会自动在数据库创建表,初次启动时间比较久,因为有82张表需要创建和初始化
type = mysql
host = 127.0.0.1:3306
name = grafana
user = grafana
# mysql 密码
password =grafana
url = mysql://grafana:grafana@localhost:3306/grafana


#################################### Security ############################
[security]
# 是否关闭初始化admin用户创建,如果为true后面配置的admin信息无效
disable_initial_admin_creation = false

# 默认用户登录名
admin_user = admin

# 默认admin用户密码
admin_password = admin

# 默认admin用户的邮箱
admin_email = admin@localhost

# 是否关闭登录表单
disable_login_form = false

# 是否关闭菜单栏中退出按钮
disable_signout_menu = false

# Grafana退出后重定向地址,在后端可以在LogoutSuccessHandler处理器中获取这个redirect_uri参数值,然后进行重定向
signout_redirect_url = http://localhost/apis/auth/logout?redirect_uri=http://locahost:3000

# 是否OAuth2自动登录,就是当访问Grafana时自动去请求授权码
oauth_auto_login = true

#################################### Generic OAuth #######################
[auth.generic_oauth]
# 登录页面OAuth2登录按钮图标,如果设置自动登录则设置无效,因为看不到登录页面
icon = signin
# 开启OAuth2
enabled = true
name = OAuth
# 
allow_sign_up = true
# 客户端ID
client_id = grafana
# 客户端密钥
client_secret = 123456
# 作用域
scopes = ALL
empty_scopes = false
# 邮箱属性名
email_attribute_name = email:primary
# 响应数据中邮箱属性的路径
email_attribute_path = email
# 响应数据中登录名属性的路径
login_attribute_path = login
name_attribute_path =
# 返回access_token的属性名
id_token_attribute_name = access_token
# 请求授权码地址
auth_url = http://localhost/apis/auth/oauth/authorize	#自研平台授权认证接口
# 请求token地址
token_url = http://localhost/apis/auth/oauth/token	#自研平台生成token接口
# 获取用户信息地址
api_url = http://localhost/apis/resource/user/info	#自研平台验证token并返回用户信信

#################################### Basic Auth ##########################
# 如果开始basic的话需要配置下面的basic_auth_username和basic_auth_password
[auth.basic]
enabled = true

#################################### Logging ##########################
[log]
mode = console file
# 日志级别
level = info

# 建议调试时打印debug日志,因为页面的提示信息不能够推断出问题
filters = oauth.generic_oauth:debug

# 上面开启了basic的认证就需要配置这个
basic_auth_username =
basic_auth_password =

​ 当Grafana获取到access_token后需要去获取用户信息,获取用户信息接口需要返回指定的值

@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
public class GrafanaUser {

    private String id; //用户唯一标识符。

    private String name; //用户名称。

    private String email; //用户电子邮件地址。

    private String login; //用户登录名。

    private String avatar_url; // 用户头像URL。

}

​ 上面几个字段是必须返回的,如果响应数据中没有包含则会报错,也可以响应权限、组织、团队等信息,但这些信息可以在Grafana中配置,因为Grafana会将我们登录成功的用户保存到自己的数据库中,从而去维护Grafana中的权限。

​ 还需要注意的点就是Grafana中要求用户的登录名和邮箱唯一,如果不唯一将会覆盖用户信息。

​ Grafana Windows版本下载地址:https://grafana.com/grafana/download?platform=windows

​ 至此,Grafana就可以通过自研平台用户登录了!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不爱敲代码_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值