跳转至

用户、身份与验证器

Authany 的身份验证系统灵活而强大。要有效配置它,理解以下三个核心概念会很有帮助:

  • 用户(User)
  • 身份(Identity)
  • 验证器(Authenticator)

通过组合身份和验证器,Authany 能够支持广泛的身份验证场景,例如:

  • 简单的邮箱 / 用户名 / 手机号登录,可选配双重验证
  • 邮箱或短信免密登录
  • 社交登录(Google、Facebook 等)
  • 以手机号登录、密码作为第二因素(类似 Telegram 或 WhatsApp 的方式)
  • 以及更多其他场景

用户

用户(User)代表与您的应用交互的实体,通常是一个人。

每个用户可以拥有多个身份,代表不同的自我标识方式。

身份

身份(Identity)是唯一标识某个用户的一段信息。
例如用户名、邮箱、手机号,或由 OAuth 提供方签发的身份。

Authany 目前支持以下身份类型:

每种身份类型都有各自的配置选项,例如:

  • Email 身份可以配置为允许或阻止 “+” 标签。
  • Username 身份可以配置为区分大小写或不区分大小写。

当用户使用 Email、Phone 或 Username 身份注册时,Authany 会自动创建相应的 OIDC 标准声明:

  • email
  • phone_number
  • preferred_username

OAuth 提供方身份也可能提供如 email 之类的声明,具体取决于提供方以及用户的授权同意情况。

身份的唯一性

每个身份唯一关联到单个用户。
这意味着两个用户不能共用相同的:

  • 邮箱地址
  • 手机号
  • 用户名

验证器

验证器(Authenticator)是用户用来证明自己身份的方式。每个用户可以拥有多个主要和次要验证器。如果要求双重验证,用户必须同时通过主要验证和次要验证才能登录。

Authany 支持两类验证器:

1. 主要验证器

  • Password
  • 一次性密码(邮箱)— oob_otp_email
  • 一次性密码(短信/WhatsApp)— oob_otp_sms

主要 OTP 验证器会根据用户的身份自动创建。例如:

  • 如果用户拥有 Email 身份且已启用邮箱 OTP 登录,Authany 会自动创建一个 oob_otp_email 验证器。
  • 如果用户拥有 Phone 身份且已启用短信/WhatsApp OTP 登录,Authany 会自动创建一个 oob_otp_sms 验证器。

2. 次要验证器

次要验证器用于多因素身份验证(MFA/2FA)。

支持的次要验证器包括:

  • Password
  • 基于时间的一次性密码(TOTP)
  • 一次性密码(邮箱)— oob_otp_email
  • 一次性密码(短信/WhatsApp)— oob_otp_sms

与身份不同,次要验证器不要求唯一性。

这使得多个用户可以使用相同的邮箱或手机号作为其第二因素验证方式,适用于共享设备或企业环境等场景。