首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为匿名多租户API端点确定租户

为匿名多租户API端点确定租户
EN

Software Engineering用户
提问于 2018-07-11 10:44:53
回答 1查看 845关注 0票数 2

我正在构建一个需要支持多租户的新API。

我可以知道如何安全地实现数据的读写,而不必担心客户端是否能够了解(或查看)其他租户数据。

我还可以理解如何为经过身份验证的端点确定正确的租户(即使用JWT中的承租者id )。

但是,对于匿名端点,我不知道如何处理。我想出了以下解决方案:

解决方案1:

添加租户id作为参数。我不喜欢这样做,因为我不希望多租户成为资源端点的一部分。

优点:

  • 易于实现

Cons

  • 不觉得多重租赁是“透明的”

解决方案2:

创建一个可以生成匿名令牌的租户服务(不要设置子服务器,只设置一个租户id)。

优点

  • 增加了多租户的透明度
  • 在稍后阶段,可以将此令牌与用户凭据一起用作交换令牌,以对多租户身份验证服务进行身份验证。

Cons

  • 添加另一个“身份验证端点”

解决方案3:

使用应用程序令牌。然后,每个租户可以有多个客户端,每个客户端使用一个密钥和秘密进行身份验证。这扩展了第二种解决方案,它有自己的优点和缺点:优点

  • 客户自己成为用户
  • 可能有作用域

Cons:

  • 增加更多的复杂性(多租户客户端需要有多个令牌)
  • 添加更多管理,每个客户端每个租户都需要一个应用程序令牌。

问题

因为这是创建这些端点的关键部分(而且它可以成为很多端点),我想听听您对这些解决方案的看法,也许还有其他一些我无法想出的方法,也许有一种我找不到的模式。您对此的投入将不胜感激。

EN

回答 1

Software Engineering用户

发布于 2018-07-11 11:01:03

考虑将tennant作为主机标题的一部分传递。即

代码语言:javascript
复制
{tennant}.myapi.com/{resource}/{action}

这解决了您对透明度的关切,并使每个租户保持独立。

一个可能的缺点是它为多租户客户端添加了多个端点。但这在某种程度上可以被认为是一件好事,因为它保持了分离。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/373961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档