3. 租户与客户管理:租户概念、创建与管理租户、客户实体、客户与设备的关系
在 ThingsBoard 平台中,租户(Tenant)与客户(Customer)是构建多租户架构的核心实体。理解这两个概念及其关系,是进行设备配置、数据隔离与权限管理的基础。本章将深入剖析租户与客户的定义、创建流程以及它们与设备之间的关联。
3.1 租户概念与核心作用
租户是 ThingsBoard 中的顶级隔离单元,代表一个独立的组织、企业或项目。每个租户拥有自己独立的设备、资产、仪表板、规则链和用户体系,彼此之间数据完全隔离。
| 特性 | 说明 |
|---|---|
| 数据隔离 | 租户 A 无法看到租户 B 的任何设备、遥测数据或告警。 |
| 资源配额 | 系统管理员可为每个租户设置设备数量、API 调用频率、存储容量等上限。 |
| 自定义配置 | 租户管理员可自定义邮件服务器、OAuth 2.0 登录、规则链等全局设置。 |
| 层级管理 | 租户下可创建多个客户,实现二级组织架构。 |
关键认知:租户是 ThingsBoard 多租户架构的基石。在 SaaS 部署模式下,一个平台实例可以同时服务数百个租户,每个租户都感觉自己在使用一个独立的系统。
3.2 创建与管理租户
租户的创建通常由系统管理员(SysAdmin)完成。以下是标准创建流程:
- 登录系统管理员界面:使用默认系统管理员账号(sysadmin@thingsboard.org / sysadmin)登录。
- 导航至租户管理:在左侧菜单栏选择“租户(Tenants)”。
- 添加新租户:点击右上角“+”号,填写租户信息。
- 配置租户资料:设置租户标题、邮箱、地址、国家等基本信息。
- 分配资源(可选):在高级设置中,可限制该租户的最大设备数、最大资产数等。
- 保存并激活:保存后,租户即创建成功,系统会自动生成一个租户管理员账号。
租户创建表单关键字段:
- 标题(Title):租户的显示名称,如“智慧农业科技有限公司”。
- 邮箱(Email):租户管理员的登录邮箱。
- 时区(Timezone):影响设备遥测数据的时间戳显示。
- 默认仪表板(Default Dashboard):租户管理员登录后默认看到的仪表板。
3.3 客户实体与业务含义
客户是租户下的子实体,代表租户的终端用户、部门或合作伙伴。客户无法创建新的租户,但可以在租户分配的权限范围内管理设备、查看遥测数据。
| 对比维度 | 租户(Tenant) | 客户(Customer) |
|---|---|---|
| 层级 | 顶级隔离单元 | 租户下的二级单元 |
| 创建者 | 系统管理员 | 租户管理员 |
| 权限范围 | 全局管理租户内所有资源 | 仅管理分配给自己的设备与资产 |
| 典型场景 | 物联网平台运营商 | 使用该平台的具体企业客户 |
| 数据可见性 | 可见租户下所有客户的数据 | 仅可见自己名下的设备数据 |
创建客户时,租户管理员需要指定客户标题、邮箱(用于客户管理员登录)、以及可选的附加信息。每个客户创建后,系统会自动生成一个客户管理员账号。
3.4 客户与设备的关系模型
设备与客户之间是多对一的归属关系。一个设备只能属于一个客户(或不属于任何客户,直接归属租户),而一个客户可以拥有多个设备。这种关系决定了数据访问权限:
- 设备归属客户:该客户的管理员和用户可以看到该设备的遥测数据、属性,并接收告警。
- 设备未归属客户:设备直接归属租户,仅租户管理员可见。
- 设备转移:租户管理员可以将设备从一个客户转移到另一个客户,或取消归属。
权限边界:客户无法查看或操作不属于自己的设备。即使设备与客户在同一个租户下,客户也无法通过设备名称或ID直接访问其他客户的设备数据。这是 ThingsBoard 实现数据安全隔离的关键机制。
3.5 设备归属与数据访问流程
当设备归属于某个客户后,数据访问遵循以下流程:
- 设备上报数据:设备通过 MQTT/HTTP/CoAP 协议上报遥测数据到 ThingsBoard。
- 平台存储数据:平台根据设备 ID 将数据存储到对应的租户数据库。
- 权限校验:当客户管理员登录并请求查看设备数据时,平台校验该设备是否归属于该客户。
- 数据返回:校验通过后,平台返回该设备的最新遥测、属性及告警信息。
实践建议:在设备配置阶段,建议先创建好租户和客户结构,再将设备批量分配给对应的客户。如果设备已经上线,可以通过“分配设备到客户”功能进行后绑定,无需重启设备。
3.6 常见操作与最佳实践
| 操作场景 | 操作路径 | 注意事项 |
|---|---|---|
| 创建新客户 | 租户管理员 → 客户 → 添加客户 | 确保客户邮箱唯一,用于登录 |
| 将设备分配给客户 | 设备详情 → 归属 → 选择客户 | 设备分配后,原客户(如有)将失去访问权限 |
| 批量分配设备 | 设备列表 → 批量操作 → 分配客户 | 支持 CSV 导入设备 ID 列表 |
| 查看客户下的设备 | 客户详情 → 设备选项卡 | 可在此处直接添加新设备到该客户 |
| 删除客户 | 客户列表 → 删除 | 删除前需先转移或删除该客户下的所有设备 |
重要提醒:删除客户是一个不可逆操作。如果客户下仍有设备,系统会阻止删除操作。建议在删除前,先将设备转移到其他客户或直接归属租户。
通过合理规划租户与客户结构,可以实现灵活的多级权限管理,确保不同组织、部门或终端用户只能访问属于自己的设备数据,为物联网平台的安全运营奠定坚实基础。