为管理员和查看者添加 grafana 角色

Posted

技术标签:

【中文标题】为管理员和查看者添加 grafana 角色【英文标题】:Adding grafana role for admin and viewer 【发布时间】:2020-12-22 01:38:36 【问题描述】:

我的小组正在使用 Prometheus 运算符图表中的 Grafana https://github.com/helm/charts/blob/master/stable/prometheus-operator/values.yaml#L486

Grafana 正在运行,我们可以使用 Oauth 进行访问。 现在我们已经在我们的 OAuth OIDC 服务器中定义了一个角色,我们需要在 Grafana 中定义(并接受)该角色,每个用户都将根据 OAuth 服务器定义获得他的角色。

例如角色“用户查看者”

我应该如何在 Grafana 中配置它? 我看到了这个https://grafana.com/docs/grafana/latest/auth/generic-oauth/#role-mapping,但它没有解释图表安装。知道如何配置角色吗?

如果有人知道如何在 Grafana 图表上配置它,我的意思是我应该如何传递这个角色 json。存档会有所帮助 https://github.com/grafana/helm2-grafana

我应该如何使用 helm(使用配置更新舞会图表)以及监视用户(在 dev 中)以验证角色已添加到令牌中。

【问题讨论】:

我有类似的用例,虽然我使用了 ldap,但在我自己的自定义 helm 图表中,我在配置映射中定义了 ldap.toml 文件,然后将其安装在路径 /etc/grafana/ldap.toml替换默认文件。这可能是一个类似的用例? @PankajSaini - 啊,我们不使用自定义 helm 图表,我们使用包含 Grafana 的 promtheus 运算符图表,你知道我应该如何配置它吗?也只是 grafana 图表就可以了 【参考方案1】:

修改grafana.ini,例如(语法可能有误,仅供参考):

helm install \
  -f values.yaml \
  --set grafana."grafana\.ini"."auth\.generic_oauth".role_attribute_path=contains(info.groups[*], 'admin') && 'Admin' || contains(info.groups[*], 'editor') && 'Editor' || 'Viewer'
  ...

或者直接在使用的 values.yaml 中。当然role_attribute_path 必须是您的用例的有效配置(角色声明名称、组名......)。

请记住,the token has the role 可能无法按预期工作 - 请参阅 https://github.com/grafana/grafana/issues/23218。经过身份验证的用户将至少具有Viewer 角色。如果您确实需要“拒绝行为”,请使用不同的方法(例如,将完成身份验证和授权的自定义身份验证代理以及 Auth Proxy 模式下的 Grafana)

【讨论】:

对不起,我还没有时间测试它,但是由于时间很快就会到期,所以我会给你赏金,希望我能够测试它并在出现问题时回来。谢谢!

以上是关于为管理员和查看者添加 grafana 角色的主要内容,如果未能解决你的问题,请参考以下文章

将登录用户的角色存储在 vuex 安全/最佳实践中吗?

java毕业设计---java swing开发学生选课系统

[Linux之权限管理⽤户组管理]

使用 Keycloak 和 .NET 核心的基于角色的授权

RBAC权限管理

RBAC权限管理