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 一段对应一个组织(如 github1、github2),多组织时分别配置别名;更通用的写法是 [auth.generic_oauth],它支持用 role_attribute_path 从令牌字段里算出角色,用 team_ids_attribute_path 同步外部组到团队(见团队(Team))。
用户自动创建与落点
外部登录成功而 Grafana 里没有此账号时,会自动建号:落到哪个组织、给什么角色,由 [auth] 段的 auto_assign_org、auto_assign_org_id 与认证段里的角色映射共同决定。排查「新同事登录后是空环境」的问题,先查这两个键。
登出与会话
- 点击左下角 Sign out 清除本机 Grafana 会话;若菜单里有多个登录方式,登出只影响当前会话。
- 想让「Grafana 登出」同时登出身份源(单点登出),SAML 走 Single Logout,OIDC 走 RP-initiated logout,需要在身份源侧配合,支持程度随版本演进,以实际界面与文档为准。
- 会话生命周期由
login_maximum_inactive_lifetime_duration、login_maximum_lifetime_duration等配置控制;新版本还支持把会话存到服务端(如session_provider指向数据库),多实例部署时关注对应说明。
常见坑
- 回调地址与
root_url不一致,OAuth 跳转后 404 或 state 校验失败——两边必须逐字符一致。 - 通过反向代理访问时没有传递
X-Forwarded-Proto: https,Grafana 生成的回调变成http://,登录后被弹回。 - 启用 LDAP 但没装对应系统组件或连通不了 389/636 端口,表现是登录页根本没有 LDAP 入口。
下一步
- 各认证段完整键值,见配置文件 grafana.ini。
- 登录之后谁有什么权限,见角色与权限(RBAC)。
- 生产环境的安全基线,见生产环境安全加固。