多租户和租户令牌
在本文中,您将了解什么是多租户以及租户令牌如何帮助管理复杂的应用程序和敏感数据。
什么是多租户?
在软件开发中,多租户意味着多个用户或租户共享相同的计算资源,并对系统范围的数据具有不同级别的访问权限。适当的多租户在云计算服务中至关重要,例如 DigitalOcean 的 Droplets 和 Amazon 的 AWS.
如果您的 Meilisearch 应用程序在同一索引中存储属于多个用户的敏感数据,那么您正在管理一个多租户索引。在这种情况下,确保用户只能搜索自己的文档非常重要。这可以通过 **租户令牌** 来实现。
什么是租户令牌?
租户令牌是加密数据的小包,证明用户可以访问特定索引。它们不仅包含安全凭据,还包含有关用户被允许查看的索引中的哪些文档的说明。**租户令牌仅提供对搜索端点的访问权限。** 它们旨在是短暂的,因此 Meilisearch 不会存储或跟踪生成的令牌。
租户令牌和 API 密钥有什么区别?
API 密钥提供对索引中特定操作的通用访问权限。具有给定索引搜索权限的 API 密钥可以访问该索引中的所有信息。
租户令牌在 API 密钥上添加了另一层控制。它们可以限制特定用户对索引中哪些信息的访问权限。如果您将来自多个客户的私人数据存储在单个索引中,租户令牌允许您阻止一个用户访问另一个用户的數據。
如何将租户令牌与应用程序集成?
租户令牌不需要任何特定的 Meilisearch 配置。您可以像使用任何具有搜索权限的 API 密钥一样使用它们。
您必须在应用程序中生成令牌。生成租户令牌的最快方法是 使用官方 SDK。也可以 使用第三方库生成令牌。
示例应用程序
Meilisearch 开发了一个使用多租户的应用内搜索演示,用于 SaaS CRM。它仅允许经过身份验证的用户搜索属于其组织的联系人、公司和交易。
查看这个示例应用程序。它的代码在专门的GitHub 仓库中公开提供。
提示
您也可以在基于角色的访问控制 (RBAC) 系统中使用租户令牌。查看 Meilisearch 官方博客上的如何使用 Meilisearch 实现 RBAC获取更多信息。