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