无用户数据库的 SSO:种子短语作为平台账户
Me2eM 上的多应用 SSO 模式:一个实例、多个应用、零用户表。每应用角色、用证明链替代 IdP、HttpOnly 会话、无数据库封禁——根植于身份。
M Me2eM Organization
9 分钟阅读
#identity
#sessions
#architecture
有9篇文章标记为"architecture"。
Me2eM 上的多应用 SSO 模式:一个实例、多个应用、零用户表。每应用角色、用证明链替代 IdP、HttpOnly 会话、无数据库封禁——根植于身份。
对七个设计决策的诚实剖析:确定性代替存储、无状态会话、两种验证模式、证明代替角色、名称规范、缓存新鲜盐值和禁止 zero-fallback——附带替代方案和我们希望不同做法的地方。
种子短语是你身份的唯一载体。我们不存储它。为什么这是深思熟虑的决定,你为此付出的代价,以及为什么这个代价比替代方案更诚实。
JWT、OAuth 和 Me2eM 解决同一个任务——授权。但信任模型根本不同:谁签名、服务器信任谁、以及发生泄露时会怎样。附代码示例的全面对比。
已签名令牌如何替代服务器会话:内部有什么、验证器检查什么、stateless 与 JWT 的区别——以及为什么 jti 旋转让撤销精确制导。
零服务器信任的 messenger 概念:无注册的身份、stateless 会话验证、X3DH 聊天、群组密钥 epoch 旋转,以及隐私的诚实代价。
父级签名如何将密钥变成凭证:授予、两种验证模式,以及一次操作撤销整条分支。
完整解析确定性密钥树:12 个词如何变成身份层级——Identity、Handle、SubHandle——以及为什么同一个 seed 总是给出相同的密钥。
完整工程指南,介绍一种私钥从不被存储的架构:确定性密钥树、non-extractable CryptoKey、规范 X3DH。