跳转到内容

Lockatus 文档

Lockatus 是套件的身份中枢:共享的人员名单与共同的门卫。它持有用户、他们的密码、他们的 双因素认证及其按应用分配的角色,并发给每个人一张签名通行证,让他们无需再次登录即可进入 任何应用。

OIDC 单点登录

Authorization Code + PKCE。在中枢登录一次;每个联合应用都会识别你并从令牌中读取你的角色。 登录一次即可打开你被允许进入的每一个应用。

离线校验

中枢用 RS256 签署令牌;各应用依据公开的 JWKS 校验它们,无需回连中枢。即便中枢宕机, 已建立的会话仍可继续工作。

访问矩阵

一张“人员对系统”的网格。每个应用声明自己的角色目录;Lockatus 负责分配它们。 某应用没有任何角色即意味着无访问权——把关发生在矩阵上。

双因素认证与恢复

一次性启用 TOTP(Google Authenticator 或兼容应用),配有一次性恢复码和管理员重置功能。 被每一个应用继承。更改密码会使每一个刷新令牌失效。

那四个单用户应用并不会在内部变成多用户——Lockatus 就是它们的外部用户表。每个应用声明它所 理解的角色;中枢从矩阵中分配它们,应用则按角色把关。更深层的、按用户划分的归属,只存在于 应用真正按个人拥有资源的地方(例如 Selega)。

任何新的家族应用都可从矩阵本身加入,无需重新部署:用 + App 按钮声明它的 slug 和它的 角色目录(以及可选的重定向 URI),然后给用户分配角色。套件的目录已预置好。

联合是可选且非破坏性的——每个应用都在一个 AUTH_MODE=federado 开关(默认关闭)之后保留 其独立登录。在联合模式下,应用把 /login 委托给中枢,并在回调时交换 code、依据 JWKS 校验 RS256 令牌,再初始化自己的会话——因此应用其余的角色把关逻辑保持不变。我们为 Node (node:crypto,无需额外依赖)和 Python(cryptography)提供了参考 OIDC 客户端。

  • RS256 非对称签名。 中枢持有私钥;各应用用公钥(JWKS)离线校验。
  • 短令牌 + 刷新。 刷新会重新核查角色,因此在矩阵中撤销访问权会在下一次刷新时切断 SSO。
  • 审计分离。 安全事件(登录、2FA、角色变更)默认开启;按应用的活动日志则需主动启用, 默认关闭。