Skip to content

认证体系总览

先理解这套认证在做什么

敲门 knock 的认证目标,不是只做一个“后台登录页”,而是把外部访问入口真正变成一扇门。

访问者通常会经历这几个阶段:

  1. 常规登录先通过人机验证
  2. 再使用 TOTPPasskey 完成身份认证
  3. 如果启用了外部账号登录,也可以跳转到第三方提供商完成授权
  4. 登录成功后创建会话
  5. 再根据 系统设置 → 凭据 里的“登录后 IP 授权”策略,决定是否给当前 IP 自动授权

因此,这套认证体系本质上同时管理了 3 件事:

  • 你是谁
  • 你当前是否有有效会话
  • 你的当前出口 IP 是否应被信任

人机验证通常是第一步

很多人第一次看文档时会把注意力全放在 TOTPPasskey 上,但常规登录页的真实第一步是:

  • 先完成人机验证

只有验证码通过后,后面的:

  • TOTP
  • Passkey 一键登录

才会继续展开。

如果你启用了 外部账号登录,登录页还会出现 使用 Google 登录使用 GitHub 登录 这类按钮。这条路径会跳转到第三方提供商完成授权,成功后仍然回到 fknock 的同一套会话与 IP 授权逻辑。

当前可选的人机验证方案见:

三类主要登录凭据

TOTP

TOTP 是基础凭据,也是第一次部署时必须优先配置的能力。

你可以把它理解为:

  • 用身份验证器 App 每 30 秒滚动生成一次 6 位验证码
  • 管理员登录时输入验证码即可完成验证

详细说明见:

Passkey

Passkey 是建立在 TOTP 之上的便捷登录方式。

你可以把它理解为:

  • 在支持的设备上,用生物识别或系统安全模块完成“一键登录”
  • 适合作为自己常用设备的长期登录方式

但它不是 TOTP 的替代品,而更像更顺手的补充。

详细说明见:

外部账号登录

外部账号登录支持把 Google、Microsoft、GitHub 或自定义 OIDC 账号绑定到某个 TOTP。

你可以把它理解为:

  • 用第三方账号完成授权
  • 授权成功后,系统找到它绑定的 TOTP
  • 再按同一套会话、白名单和有效期策略完成登录

它同样不是 TOTP 的替代品,而是另一种绑定在 TOTP 下的快捷登录方式。

详细说明见:

登录成功后会发生什么

登录成功会同时触发以下动作:

  1. 记录登录日志
  2. 创建登录会话
  3. 按当前会话策略生成、跳过或更新自动 IP 授权记录
  4. 如果当前 TOTP 尚未绑定 Passkey,可能会提示你在当前设备上绑定

如果你使用的是外部账号登录,登录日志和事件中心里会把认证方式记录为 OIDC,并尽量显示对应提供商名称;会话和自动白名单的后续行为仍和 TOTP / Passkey 登录一致。

其中最容易被忽略的是第 3 点。

这一步现在不再只有一种固定行为。

常见策略有:

  • 跟随会话:当前 IP 会跟着这次登录一起获得授权
  • 不自动白名单IP:只保留浏览器会话,不额外给 IP 放行
  • 自定义:给当前 IP 签发固定时长授权,主动退出登录时仍会立即撤销

如果你处在直连模式里,这又意味着:

  • 你后续能否继续访问,很大程度上取决于当前出口 IP 是否还保持不变

登录成功后的 toolbar 小组件

这是一项最近很值得单独认识的新体验。

在下面两种模式里:

  • 反代模式
  • 子域模式

当你已经登录成功,并进入需要认证的业务页面后,页面右下角默认会出现一个小型 toolbar 小组件。

它主要解决的是:

  • 不必每次都退回首页再找别的应用
  • 已登录状态下可以更方便地切换当前接入的服务
  • 需要离开时也可以直接从这里退出登录

这个小组件能做什么

点击后会展开一个小菜单。

反代模式 下,它通常会列出:

  • 你当前配置的各个路径应用

子域模式 下,它通常会列出:

  • 你当前配置的各个业务子域

你可以直接从这里切换应用。

默认出现在哪里

默认会出现在:

  • 屏幕右下角

能不能挪位置

可以。

它支持拖动到屏幕四个角落:

  • 左上
  • 右上
  • 左下
  • 右下

拖过去之后,位置会被记住,下次打开页面时会继续沿用。

能不能直接退出登录

可以。

展开菜单后,点击:

  • Logout

就可以直接退出当前登录;页面还会先弹出一次确认,避免误触。

记住我 的真实含义

登录页里的 记住我 不是一个单纯的界面偏好,而是会改变登录有效期。

  • 默认不勾选时:登录会话通常约 24 小时
  • 默认勾选时:可延长到约 1 年
  • 这两个默认值现在都可以在 系统设置 → 凭据 里调整
  • 如果当前使用的是 跟随会话,对应的登录后 IP 授权也会一起延长
  • 新时长只会影响之后新创建的登录会话

建议只在自己的可信设备上使用。

退出登录会发生什么

退出登录时,系统会:

  1. 清理当前登录会话
  2. 清理当前登录生成的自动 IP 授权(如果有)

如果你之前还有手动添加的白名单,那些手动记录不会因为退出登录而消失。

认证相关的几个页面分别负责什么

页面作用
验证码设置讲登录页先做人机验证,以及 PoWTurnstile 怎么选
Cloudflare Turnstile 启用指南讲 Cloudflare 的 site_keysecret_key、hostname 和 widget 创建流程
TOTP 与密码器 App讲 TOTP 是什么、怎么绑、该装什么身份验证器
Passkey讲 Passkey 是什么、什么时候值得绑定、绑定后有哪些边界
外部账号登录讲 Google、Microsoft、GitHub 和自定义 OIDC 怎么配置、绑定与登录
会话管理与 IP 轨迹讲当前在线会话、踢出会话和 IP 漂移轨迹
日志、会话与安全防护讲登录日志、会话、异常登录退避和扫描防护
IP 白名单讲登录后 IP 授权、手动白名单和直连模式里的放行关系

建议的配置顺序

如果你是第一次部署,建议这样走:

  1. 先绑定 TOTP
  2. 确认至少有一个可正常使用的身份验证器
  3. 再给自己的常用设备绑定 Passkey
  4. 如有需要,再配置外部账号登录并绑定到对应 TOTP
  5. 最后再决定是否使用 记住我

这样可以同时兼顾:

  • 可恢复性
  • 日常体验
  • 安全边界

QQ群:1081609274