Skip to content

认证、会话与服务范围

fn-knock 的认证用于保护网关后的服务,不等同于 Docker 或 OpenWrt 管理面板的访问密码。前者决定访问者能否通过网关;后者只保护管理后台入口。

一次登录会经过什么

对于非本地来源的受保护服务,通常会经过以下步骤:

  1. 网关按映射规则判断该服务是否需要认证。
  2. 登录页执行已启用的人机验证。
  3. 按登录模式完成身份验证。
  4. 创建会话,并按会话设置决定是否授予当前 IP。
  5. 访问 Host 时再检查该凭据的服务范围。

局域网、回环和其他私网来源默认属于本地豁免,不会完整经历上述流程,凭据的服务范围也不会用于限制它们。公网验证请使用真实外部网络。

登录回跳被暂停时

认证页检测到目标指回当前验证页、同一目标持续循环或回跳地址不安全时,会暂停自动跳转并显示提示。此时不要反复刷新认证页;回到原始业务 Host 重新发起访问,再依次检查认证 Host、根域与 Cookie 作用域、访问协议,以及前置代理传递的 HostX-Forwarded-HostX-Forwarded-Proto。边缘平台不应缓存登录或重定向响应。

登录模式

模式可用方式适合场景
TOTP 登录模式TOTP;已绑定时可使用 Passkey 和外部账号个人使用、需要硬件或生物识别快捷登录
账号密码登录模式用户名和密码多人使用、需要独立账号

两种模式在 认证配置 中切换。切换前,系统会检查必要的密码或 TOTP 是否已准备好;切换后,未启用方式创建的会话需要重新登录。

凭据与权限的关系

  • TOTP 是一个可命名的身份凭据,可限制其可访问的子域;关联的 Passkey 和 OIDC 登录会继承该范围。
  • 账号密码模式中的账号同样可以配置服务范围。
  • 要求登录 的 Host,有效手动来源授权可独立放行;登录后自动创建的 IP 授权通常允许同一来源继续访问。自动授权不会覆盖浏览器中已携带的服务范围拒绝;没有可用来源授权时,网关才按会话和凭据范围继续判断。
  • 登录后的自动 IP 授权由 系统设置 → 会话 控制。它是来源 IP 的放行路径,不是凭据范围控制;手动白名单过宽时,该来源无需浏览器登录也可能直接进入受保护 Host。
  • 服务范围受限的登录凭据不会创建自动 IP 授权,以免来源 IP 授权扩大该凭据的服务范围。这包括受限的 TOTP、其关联 Passkey / OIDC,以及受限服务范围的账号密码账号;它们不适合用作直连模式的自动放行凭据。

管理面板密码不是网关登录

Docker、OpenWrt 等部署会先要求设置管理面板密码。这个密码保护的是 7991 管理入口;它不会自动成为访问者登录网关服务的账号,也不会替代 TOTP 或账号密码认证。

推荐顺序

  1. 设置一种主登录方式,并准备至少一个备用凭据。
  2. 为需要隔离的人员或设备建立独立凭据。
  3. 给每个凭据设置可访问的子域范围。
  4. 再给常用设备绑定 Passkey,或配置外部账号登录。
  5. 最后调整会话时长、记住我 和登录后 IP 授权策略。

QQ群:1081609274