本文将介绍什么是多租户以及租户令牌如何帮助管理复杂应用程序和敏感数据。

什么是多租户?

在软件开发中,多租户意味着多个用户或租户共享相同的计算资源,但对系统范围的数据拥有不同级别的访问权限。适当的多租户在云计算服务中至关重要,例如 DigitalOcean 的 DropletsAmazon 的 AWS

如果您的 Meilisearch 应用程序在同一个索引中存储属于多个用户的敏感数据,那么您正在管理一个多租户索引。在这种情况下,确保用户只能搜索自己的文档至关重要。这可以通过使用租户令牌来实现。

什么是租户令牌?

租户令牌是加密数据的小型包,提供用户可以访问特定索引的证明。它们不仅包含安全凭证,还包含关于用户被允许查看该索引中哪些文档的指令。租户令牌仅授予搜索端点访问权限。它们旨在短期有效,因此 Meilisearch 不会存储或跟踪已生成的令牌。

租户令牌与 API 密钥有何区别?

API 密钥授予对索引中特定操作的通用访问权限。拥有给定索引搜索权限的 API 密钥可以访问该索引中的所有信息。

租户令牌在 API 密钥之上增加了另一层控制。它们可以限制特定用户在索引中可以访问的信息。如果您在单个索引中存储来自多个客户的私有数据,租户令牌可让您阻止一个用户访问另一个用户的数据。

如何将租户令牌集成到应用程序中?

租户令牌不需要任何特定的 Meilisearch 配置。您可以像使用任何具有搜索权限的 API 密钥一样使用它们。

您必须在应用程序中生成令牌。生成租户令牌最快的方法是使用官方 SDK。也可以使用第三方库生成令牌

示例应用程序

Meilisearch 开发了一个在 SaaS CRM 中使用多租户的应用程序内搜索演示。它只允许经过身份验证的用户搜索属于其组织的联系人、公司和交易。

查看此示例应用程序。其代码在专门的GitHub 仓库中公开可用。

您还可以在基于角色的访问控制 (RBAC) 系统中使用租户令牌。请查阅 Meilisearch 官方博客上的《如何使用 Meilisearch 实现 RBAC》以获取更多信息。