Skip to Content
账户与组织账号与安全

账号与安全

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

注册与邮箱验证

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

  • 长度 8-72 字符(上限来自 bcrypt);
  • 至少包含 1 个大写字母、1 个小写字母、1 个数字(不强制特殊字符);
  • 命中常见弱密码黑名单会被拒绝。

注册成功后自动登录并进入 /onboarding。系统会异步发送验证邮件;未验证时可在 /settings/profileSend verification email 重发,验证链接 24 小时有效。

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

登录与会话

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

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

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

忘记密码

发起重置

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

完成重置

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

OAuth 关联账号

支持的第三方登录:GoogleGitHub

  • 用 OAuth 登录:登录 / 注册页底部的 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 直接放行(因此强烈建议启用 2FA);
  • 直接调 API 时对应 POST /v1/auth/step-up(body 传 totp_codebackup_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 分钟。