跳到正文Skip to Content
账户与组织账号与安全

账号与安全

本页覆盖 Argus 账号(用户级)的全部安全能力:注册、登录、OAuth 关联账号、双因素认证(2FA)、 敏感操作二次验证(step-up)与个人访问令牌(PAT)。这些都属于用户,与组织、项目无关—— 组织内权限见 组织、项目与 RBAC。

注册与邮箱验证

在 Console /register 页注册,需要:姓名、邮箱、密码。密码策略(服务端强制):

  • 至少 8 个 Unicode 字符, 最多 72 个 UTF-8 字节(上限来自 bcrypt;中文等多字节字符会更早达到上限);
  • 至少包含 1 个大写字母、1 个小写字母、1 个数字(不强制特殊字符);
  • 命中常见弱密码黑名单会被拒绝。

注册成功后账号处于待验证状态, 不会自动登录。注册页会显示验证邮件的发送状态,并提供重发入口; 邮箱验证成功后,再到 /login 登录并进入 /onboarding。验证链接 24 小时有效。 如果邮件服务未配置、发送失败或收件地址不在允许范围,页面会提示无法送达;此时不能靠未验证账号登录到设置页重发。

用 Google / GitHub OAuth 注册的账号没有密码、邮箱自动视为已验证。之后如需设置密码,走一次 「忘记密码」流程即可(见下)。

登录与会话

在 /login 页用邮箱 + 密码登录;已启用 2FA 的账号会在提交后被要求追加 6 位动态码(TOTP)或备份码。

会话机制(对用户可见的行为):

  • 登录成功后颁发会话 Cookie argus_session(HttpOnly),有效期 7 天;
  • 登出(用户菜单 Logout)立即删除服务端会话;
  • 重置密码会吊销该账号的全部会话(所有设备都需要重新登录)。

忘记密码

发起重置

在 /forgot-password 页填邮箱。无论邮箱是否存在都会返回成功(不暴露账号存在性);存在则收到重置邮件。

完成重置

点击邮件中的链接(/reset-password/{token} 页),重置 token 30 分钟内有效。设置新密码后, 该账号所有已登录会话被吊销,需要重新登录。

OAuth 关联账号

产品支持的第三方登录类型为 Google 与 GitHub;具体环境是否启用以登录页显示为准。

  • 用 OAuth 登录:当服务端配置对应 Provider 时,登录页底部才显示 Google / GitHub 按钮。若该第三方邮箱已有 Argus 账号,会自动关联到既有账号;否则自动创建新账号。
  • 管理关联:/settings/linked-accounts 页列出已关联账号(Provider / Email / Linked at), 可逐个 Unlink 解绑;仅已配置、未关联的 provider 显示 Link Google / Link GitHub 按钮,点击即走 一次 OAuth 授权完成关联。

申请的权限范围很小:Google 为 openid email profile,GitHub 为 read:user user:email,仅用于 读取邮箱与基本资料完成登录。

双因素认证(2FA)

Argus 的 2FA 采用基于时间的一次性密码(TOTP)(Google Authenticator、1Password 等均可)+ 10 个一次性备份码。

启用(Console:/settings/2fa)

点击 Enable 2FA

服务端生成 TOTP secret,页面展示二维码(也可手动输入 secret)。

保存备份码

同屏展示 10 个 8 位备份码,每个只能使用一次。这是唯一一次展示,请立即保存到密码管理器。

输入 6 位动态码确认

用认证器 App 输出的当前 6 位码点 Confirm,2FA 即生效。之后每次登录都需要动态码(或消耗一个备份码)。

关闭

/settings/2fa 页点 Disable 2FA。这是高敏操作,需要先通过 step-up 二次验证(见下节)。

当前不提供「重新生成备份码」入口。若备份码即将耗尽,建议在仍持有 TOTP 的情况下先关闭再重新 启用 2FA,以获得一组新的备份码。

敏感操作二次验证(Step-up)

对高敏操作,Argus 要求会话在最近 10 分钟内做过一次二次验证(step-up):修改密码、关闭 2FA、 创建 / 吊销 PAT、轮换 / 吊销 DSN key、修改成员角色 / 移除成员、提交数据删除请求等。

  • Console 会在需要时自动弹出确认对话框(输入 TOTP 或备份码),验证通过后自动重试原操作;
  • 一次 step-up 在 10 分钟窗口内对多个敏感操作有效;
  • 未启用 2FA 的账号不能完成 step-up;Console 会先检测账户状态并引导前往 /settings/2fa 完成设置,启用后返回原操作。高敏操作不允许降级为仅凭现有 session 或重输密码放行;
  • 直接调 API 时对应 POST /v1/auth/step-up(body 传 totp_code 或 backup_code),未 step-up 的会话调用受保护端点会收到 401 {"error":"step_up_required"};
  • PAT 无法完成 step-up:用 PAT 调用高敏端点固定返回 403 {"error":"pat_step_up_unsupported"} ——个人访问令牌天然无法完成”实时人工二次验证”,一枚泄露的 PAT 不应足以执行改密码 / 轮换密钥这类操作。

个人访问令牌(PAT)

个人访问令牌(Personal Access Token,PAT)是用户级 API 凭证,用于脚本、CI、MCP 客户端等程序化 访问查询侧 API(认证方式总览见 OpenAPI / 查询 REST API)。

创建(Console:/settings/pat)

填名称与有效期

Token name + 过期天数(默认 90 天,可设 1-3650 天)。

点击 Generate

需要先通过 step-up 验证。生成后页面仅此一次显示完整 token,请立即保存——之后列表里只保留 前缀提示(hint)。

  • 格式:argus_pat_ + 64 位十六进制(服务端只存哈希);
  • 使用:HTTP 头 Authorization: Bearer argus_pat_xxxxxxxx...;
  • 列表:/settings/pat 显示 Name / Hint / Expires / Last used;
  • 吊销:列表行内 Revoke(需 step-up),吊销立即生效。

Scope 与项目绑定

PAT 携带 scope 列表,有效权限 = 你当前的组织角色 ∩ token 的 scope(绝不提权;角色被降级后 token 权限即时收敛)。当前需要了解两点:

  • Console 创建的 PAT 默认带 read scope,适合只读查询;
  • 用于 MCP / REST 工具调用的 token 必须带 mcp:read scope 并绑定到一个项目 (project_id);带 mcp:read 的 token 不能当作 Console 登录会话使用。MCP 接入步骤见 MCP 接入。

Console 的 PAT 创建表单目前尚未提供 scope 与项目绑定选择(默认 read)。需要 MCP 专用 token 时,请以 Console 实际提供的入口为准,或经 API POST /v1/me/pats(body 传 scopes: ["mcp:read"] 与 project_id)创建。

FAQ

OAuth 注册的账号怎么设置密码? 走一次 忘记密码 流程:对你的邮箱发起重置,设置新密码后即可邮箱 + 密码登录,OAuth 关联不受影响。

手机丢了,TOTP 用不了怎么登录? 登录时改用备份码(启用 2FA 时展示的 10 个 8 位码之一,一次一个)。若备份码也已用尽,目前需要 联系管理员 / 平台支持处理,请务必妥善保存备份码。

PAT 泄露了怎么办? 立即到 /settings/pat Revoke 该 token(吊销即时生效),并检查 审计日志 中该 token 的调用记录。

为什么我的 PAT 调用某些接口返回 403 pat_step_up_unsupported? 该接口是高敏操作(改密码、轮换 DSN、增删 PAT 等),只允许交互式会话在 step-up 之后调用,PAT 被设计为无法执行这类操作。

会话多久过期? argus_session Cookie 有效期 7 天;登出、重置密码会提前吊销。step-up 状态另计,仅 10 分钟。