跳到主要内容

Token 与凭据轮换

个人 Token、给 MCP 和 API 用的服务账号,以及不停机地轮换它们。

这页办完你会得到:一套能说清「哪个 Token 给谁用、上次什么时候用过、什么时候换」的做法, 以及一条换 Token 时不会把线上打断的操作顺序。

创建和使用 Token 的最短路径在 个人 Token 认证,这页讲的是之后的事。

Token 是什么,不是什么​

Token 是一个 UUID,挂在某个用户名下,代表「以这个用户的身份行动」。

  • 它没有独立权限。 拿 root 的 Token 就是 root,拿只读账号的 Token 就是只读账号。 想收窄一个集成能碰的东西,唯一的办法是换一个权限更小的账号来签发。
  • 它不会过期。 表里没有有效期字段,删掉才失效。
  • 同一个 Token 三个入口通用:/api/n9e/*、/mcp、/a2a 共用同一条认证链, 请求头默认是 X-User-Token。

所以「Token 管理」的实质是账号管理:一个用途一个账号、一个账号一个 Token, 出事的时候才有得查、有得停。

1. 给自动化建专用账号​

不要把个人账号的 Token 交给 CI 或者 AI 客户端。按用途各建一个:

用途建议角色团队与业务组
AI 客户端只读接入Guest,或摘掉写权限的自定义角色加进一个对目标业务组只读的团队
CI 里同步告警规则自定义角色,只勾 /alert-rules 四件套对应业务组读写
外部系统读事件Guest + /alert-cur-events、/alert-his-events相关业务组只读

建账号见用户与团队,自定义角色见角色与权限矩阵。

别给这些账号 Admin:Admin 会跳过业务组这一层,等于给了全量数据。

2. 不停机地轮换一个 Token​

Token 管理页在头像菜单 → 个人中心 → Token 管理(/account/profile/token), 而且只能管自己的 Token——所以轮换服务账号的 Token 要先用那个账号登录。

顺序是「先建新的,再删旧的」,产品本身也强制这个顺序:删到只剩一个时再删会被拒绝 (cannot delete the last token)。

  1. 用服务账号登录,进 Token 管理,点 创建 Token;
  2. Token 名称必填,同一个用户下不能重名——所以名字里带上日期, 比如 ci-2026-09,下一轮就是 ci-2026-12;
  3. 新行的 Token 值默认打码,点查看展开再复制;
  4. 把新值换进客户端 / CI / 密钥管理器,跑一次真实调用;
  5. 回到这一页,看旧 Token 那行的最近使用时间是否已经不再前进;
  6. 确认之后删掉旧行,立刻生效。

预期结果:列表里只剩新那一行,业务侧没有一次 401。

第 5 步是这套流程的价值所在:最近使用时间 会告诉你还有没有谁在用旧凭据, 不用靠猜。它是每次认证成功时更新的,- 表示从来没用过。

3. 盘点在用的 Token​

界面上没有「全站 Token 列表」,GET /api/n9e/self/token 也只返回自己的。 所以盘点靠的是「一个用途一个账号」这条纪律:账号列表就是 Token 清单。

  • 用户列表右上的最后活跃时间筛一遍,长期不活跃的服务账号大概率已经废弃;
  • 每个服务账号下的 Token 数量应当是 1,多出来的通常是上一轮轮换没删干净;
  • 删用户会连同他名下的全部 Token 一起删掉——这就是离职处理的正确动作, 不需要先登录进去一个个删。

4. 别忘了另外几套凭据​

Token 只是其中一种。真正做一次凭据轮换,下面这些要一起过:

凭据在哪儿换备注
root 的密码用户管理里的重置密码默认口令 root.2020 是公开信息,装完就得改
采集器 Basic Auth[HTTP.APIForAgent.BasicAuth]改完要同步所有采集器,见网络与 TLS 加固
服务间 Basic Auth[HTTP.APIForService.BasicAuth]配置文件里自带的那组示例账号密码是公开的,别沿用
数据源账号密码数据源编辑页非管理员看不到这些值,改完记得验证一次查询
SSO 的 ClientSecret系统配置 → 单点登录建议放进加密变量,见密钥管理
通知媒介的 Token通知媒介配置同上
仪表盘匿名分享链接仪表盘列表的公开设置它是独立的令牌,改密码不会让它失效,见匿名限时分享

配置文件里的那几项都支持密文存储,见密钥管理。

下一步​