跳转到内容

账户与凭据

查看 Markdown

Sudomimus 将账户身份、认证凭据与邮箱所有权保存在不同的记录中。这套模型由 Connect、OIDC 与原生 direct-issue 共同使用。

记录表示什么
Account用户本人:稳定的内部记录与个人资料,不直接携带邮箱字段。
Authentication账户可使用的一项登录凭据,例如邮箱验证码、通行密钥、Steam 身份、OAuth 身份或企业联合身份。
EmailIdentity账户拥有的一封已验证邮箱。每条记录会保存验证来源,且最多一封被标记为主要邮箱。

凭据证明的是这个人如何登录;邮箱身份记录证明的是这个人拥有哪封邮箱。两者有关联,但不是同一个事实。

例如:

  • 通过邮箱验证码注册时,会同时创建邮箱登录凭据与已验证邮箱身份。
  • Google、GitHub 或 Discord 登录可以建立邮箱所有权,但不会自动把邮箱验证码注册成新的登录方式。
  • 纯 Steam 账户可以正常登录,同时完全没有已验证邮箱。
  • 删除一种登录方式本身不会改写账户的邮箱所有权记录。

这样,平台可以分别判断允许的登录方式、基于邮箱的准入规则与令牌声明,而不需要把某一张凭据表当成所有身份事实的来源。

内部账户标识符永远不会离开 Sudomimus。应用只会收到按用途隔离的扇区主体,以及策略和用户授权允许的身份声明