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