如何通过jwt授权登录grafana
** 前言 **
之前了解过shiro的授权登录,也使用在了项目中,最近领导有新需求要使用grafana和普罗米修斯,需要把之前的jwt对接到grafana。由于没了解过jwks,踩过很多坑。
准备
grafana基础相关准备:
- 首先查看grafana文档,有oauth和最新的jwt,我们使用的jwt, 链接地址
- JWK在OIDC中的主要作用是为JWT(id_token)提供加密密钥,用于加密/解密或签名/验签,是JSON格式的数据, 链接地址
- 自己项目的jwks保存的json文件地址。
- grafana的下载地址,jwt支持8.0+版本,链接地址
- jwt在线解密地址,链接地址
- jwk在线生成json地址,链接地址
计划
首先确定jwt需要加密的方式,例:HS256生成后的json:
{
"kty":"oct",
"kid":"b84d5063-4a59-4276-8e15-397467c15086",
"k":"ITPXt5oeLPBHS-40WBW31uOc5ML-zxSS_YEM8hDHmVc",
"alg":"HS256"
}
开始
1.根据生成的json数据copy到json文件,并设置下载地址:https://xxx/static/xxx.json
2.修改grafana的配置--grafana.ini,修改后重启grafana:
3.在线解密网站生成测试token,(需要kid和secret及PAYLOAD里的sub作为grafana用户名)
4.使用测试token测试grafana接口是否可以验证通过,不返回401即登录成功
5.修改项目里jwt生成方式及加密方式,即可使用shiro生成token登录grafana。
踩坑历程
1.版本问题,低于8.0加上配置上,未生效
2.kid问题,header里未添加kid,报错 "not found code "
3.secret问题,签名需要添加json里对应的k的加密签名,报错解密失败
4.sub问题,PAYLOAD需要sub对应grafana的用户名,报错context错误
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战