核心概念
租户 (Tenant)
了解多租户架构在 YeeAuth 中的概念以及如何使用组织来实现租户隔离。
租户 (Tenant)
在面向 B2B (企业对企业) 的 SaaS 应用程序中,多租户架构 (Multi-Tenancy) 是一种非常常见的软件架构。在 YeeAuth 中,租户 (Tenant) 的概念通常通过组织 (Organization) 来实现和落地。
什么是多租户架构?
多租户架构允许您的应用程序服务于多个客户群体(企业、团队或机构),每个客户群体被称为一个“租户”。 这些租户共享同一套底层软件和基础设施资源,但他们在逻辑上是完全隔离的——租户 A 的用户绝对无法访问或看到租户 B 的数据。
YeeAuth 中的租户模型
在 YeeAuth 中,我们使用 组织 (Organization) 来对应 SaaS 场景下的租户概念。
- 隔离性:每个租户拥有独立的名称、唯一标识符和配置信息。
- 成员归属:一个用户池中的用户可以被邀请加入一个或多个租户。当用户登录应用程序时,应用可以通过 YeeAuth 获取该用户当前所在的租户上下文。
- 租户级权限 (RBAC):不仅有全局层面的角色,YeeAuth 还支持在租户(组织)内部定义角色和分配权限。这意味着同一个用户在“租户 A”中可能是管理员,但在“租户 B”中可能只是普通访客。
B2B SaaS 典型工作流
- 租户创建:当一家新企业购买了您的 SaaS 产品时,您通过 YeeAuth API 或控制台为其创建一个新的组织(即租户)。
- 企业身份联邦 (SSO):对于大型企业客户,他们可能希望员工通过他们自己的企业目录(如 AD、Okta 或飞书)登录您的应用。您可以为该特定的租户单独配置企业级单点登录 (SSO) 连接。
- 成员邀请:租户管理员可以通过邀请链接或后台分配,将企业员工加入到该租户中。
- 应用接入:您的应用程序在进行鉴权时,会要求用户选择其要登录的租户,并在颁发的 JWT Token 中携带该租户的标识符 (
org_id/tenant_id)。
[!IMPORTANT]
用户池与租户的区别: 用户池 是物理/逻辑的完全隔离,通常用于不同环境(Dev/Prod)或完全无关的业务线;租户 是应用层面的数据隔离,多个租户通常共存于同一个用户池中,以便支持“一个账号,加入多个企业团队”的常见 SaaS 场景(如 GitHub 或 Notion 的工作区概念)。