本篇目录7 节

04组织与权限Access

认证与登录集成

Grafana 的登录方式集中在 grafana.ini 的若干 auth 段里:内置账号、OAuth、SAML、LDAP。本文概览各方式的定位与选择,给出一个 GitHub OAuth 完整示例,并说明登出与会话行为。

约 2 分钟/689 字/GRAFANA 12.X

auth 段的结构

认证配置全部在 grafana.ini 中,分成两类:

  • [auth] 全局段:登录通用开关,比如 disable_login_form(隐藏账号密码登录表单)、disable_signout_menu,以及代理认证头的信任设置。
  • [auth.<方式>] 各方式段[auth.basic] 内置账号、[auth.anonymous] 匿名访问、[auth.ldap][auth.saml][auth.github][auth.generic_oauth] 等,每一段独立开关。

改完配置需要重启 Grafana 才生效;临时验证可以用环境变量覆盖,见环境变量覆盖配置

选哪种登录方式

方式 适用场景 特点
内置账号(basic auth) 个人实验、隔离环境 账号存在 Grafana 数据库里,密码加盐哈希
LDAP / AD 传统企业内部目录 只负责认证与组查询,账号仍需自动或手动建
OAuth2 / OIDC SaaS 身份源:GitHub、Google、Okta、Entra ID 等 走浏览器跳转授权,适合云上协作
SAML 2.0 企业 SSO 采购要求 元数据交换,配置最重

提示: 接企业身份源后建议把 disable_login_form 设为 true,强制所有人走统一登录;保留一个本地 Server Admin 账号以防身份源故障时进不了门。

示例:用 GitHub 登录

第一步在 GitHub 的 OAuth Apps 里创建应用,回调地址填 https://your-grafana/login/github。第二步写入配置并重启:

[server]
root_url = https://your-grafana/

[auth.basic]
enabled = false

[auth.github]
enabled = true
allow_sign_up = true
client_id = <OAuth-App 的 Client ID>
client_secret = <OAuth-App 的 Client Secret>
scopes = user:email, read:org
auth_url = https://github.com/login/oauth/authorize
token_url = https://github.com/login/oauth/access_token
api_url = https://api.github.com/user
allowed_organizations = your-github-org

登录页会出现 GitHub 按钮;allowed_organizations 限定只有该 GitHub 组织的成员可以进来。GitHub 一段对应一个组织(如 github1github2),多组织时分别配置别名;更通用的写法是 [auth.generic_oauth],它支持用 role_attribute_path 从令牌字段里算出角色,用 team_ids_attribute_path 同步外部组到团队(见团队(Team))。

用户自动创建与落点

外部登录成功而 Grafana 里没有此账号时,会自动建号:落到哪个组织、给什么角色,由 [auth] 段的 auto_assign_orgauto_assign_org_id 与认证段里的角色映射共同决定。排查「新同事登录后是空环境」的问题,先查这两个键。

登出与会话

  • 点击左下角 Sign out 清除本机 Grafana 会话;若菜单里有多个登录方式,登出只影响当前会话。
  • 想让「Grafana 登出」同时登出身份源(单点登出),SAML 走 Single Logout,OIDC 走 RP-initiated logout,需要在身份源侧配合,支持程度随版本演进,以实际界面与文档为准。
  • 会话生命周期由 login_maximum_inactive_lifetime_durationlogin_maximum_lifetime_duration 等配置控制;新版本还支持把会话存到服务端(如 session_provider 指向数据库),多实例部署时关注对应说明。

常见坑

  • 回调地址与 root_url 不一致,OAuth 跳转后 404 或 state 校验失败——两边必须逐字符一致。
  • 通过反向代理访问时没有传递 X-Forwarded-Proto: https,Grafana 生成的回调变成 http://,登录后被弹回。
  • 启用 LDAP 但没装对应系统组件或连通不了 389/636 端口,表现是登录页根本没有 LDAP 入口。

下一步

本页为学习整理的中文改写,依据Grafana 官方文档最新版本编写(以 Grafana 12.x 为基准),操作路径请以实际产品界面为准。

Access