我计划创建一个 grafana 仪表板来监控我的网络应用程序性能。 我使用我的自托管 umami 实例收集网站登陆页面的分析。 Umami 提供 REST API 来读取网站统计信息。 文档说,API 身份验证是通过获取 jwt 令牌并将其传递到 http 标头以从端点检索数据来实现的。
Grafana 中的 JSON 插件似乎只适用于基本的 http 身份验证。我希望存储 jwt 令牌并随后在请求中传递 ist 。在最好的情况下,身份验证过程在每次获取之前都是自动化的。如何实现通过jwt token授权获取数据?
以下是一些在 Grafana 中使用 JWT 令牌授权来获取数据的方法,即使插件似乎只支持基本身份验证:
编写自定义数据源插件: 开发插件:创建一个专门支持JWT身份验证的Grafana数据源插件。 实现身份验证逻辑:处理令牌检索、存储以及包含在插件内的请求中。 优点:完全控制身份验证和数据检索,针对 Umami 的 API 量身定制。
使用中间件(如果可用): 检查中间件支持:一些 Grafana 插件可能提供中间件或请求拦截器。 拦截请求:在请求发送到 API 之前,使用中间件将 JWT 令牌注入到请求中。
利用外部身份验证: 使用 JWT 身份验证配置 Grafana:设置 Grafana 以使用 JWT 身份验证进行用户登录。 利用 Grafana 变量:将 JWT 令牌存储在 Grafana 变量中。 在请求中传递令牌:在数据源查询中引用变量以将令牌包含在授权标头中。 其他注意事项:
考虑安全影响:仔细评估每种方法的安全性,特别是在令牌存储和传输方面。 选择最合适的方法:选择最适合您的技术专业知识、安全要求和 Grafana 设置的方法。 探索社区资源:查阅 Grafana 文档和社区论坛,获取与 JWT 身份验证相关的具体指南和示例。