Skip to content

SaaS 租户

MiniAdmin 提供 SaaS 租户基础能力,用于让同一套后台服务多个租户,并控制租户状态、套餐和初始化。

核心概念

概念说明
租户使用系统的客户或组织
租户编码登录和识别租户的稳定编码
租户套餐控制租户可用菜单、用户上限、存储容量等
租户管理员租户初始化后默认创建的管理员账号
当前租户请求上下文中的租户身份

登录识别

租户用户登录后,JWT 中会携带租户信息。后续请求通过当前租户上下文过滤数据。

如果租户被禁用:

  • 新登录会被拒绝。
  • 已有 token 的后续请求会被拦截。

租户套餐

租户套餐用于控制菜单和资源上限。

常见场景:

  • 不同租户可见不同菜单。
  • 不同套餐限制最大用户数。
  • 不同套餐限制存储容量。

数据隔离

租户数据隔离的原则:

  • 业务表如果属于租户,应包含 TenantId
  • 查询时默认按当前租户过滤。
  • 平台管理员可以在明确场景下跨租户管理。
  • 不要让普通租户用户传入任意 TenantId 查询数据。

二开建议

新增业务模块时先判断:

  1. 这个模块是否属于租户数据。
  2. 是否需要 TenantId
  3. 是否需要租户内唯一约束。
  4. 是否需要套餐控制入口。
  5. 是否需要平台管理员跨租户维护。

如果不确定,默认把业务数据设计为租户数据更安全。

MiniAdmin documentation site. Built for learning, delivery, and secondary development.