Design patterns 在多租户环境中处理重复和跨租户帐户

Design patterns 在多租户环境中处理重复和跨租户帐户,design-patterns,multi-tenant,Design Patterns,Multi Tenant,是否有一个好的“审查”方法来处理不同租户拥有同一账户的多个副本?是否有一些推荐的设计模式 在我的情况下,我们的应用程序基于URL路由租户: https://ten_a.software.com --> selects "ten_a" tenant https://ten_b.software.com --> selects "ten_b" tenant 我遇到了以下问题: Bob的账号是tenu a,他试图登录tenu b.software.com,甚至softare.com。

是否有一个好的“审查”方法来处理不同租户拥有同一账户的多个副本?是否有一些推荐的设计模式

在我的情况下,我们的应用程序基于URL路由租户:

https://ten_a.software.com  --> selects "ten_a" tenant
https://ten_b.software.com  --> selects "ten_b" tenant
我遇到了以下问题:

Bob的账号是
tenu a
,他试图登录
tenu b.software.com
,甚至
softare.com
。如果Bob只是在他的浏览器中键入URL,那么让他知道如何使用正确的地址并不重要,但是当另一个实体试图通过OAuth2交换对Bob进行身份验证时,这会变得更加复杂。该第三方可能不知道该由哪个租户发出授权请求。我在这里只看到两种解决方案:

  • 要求Bob在其用户名/密码旁边输入其租户信息。最大的缺点是用户体验和UI开销
  • 基于用户名实现租户路由器。这里最大的缺点是这看起来像一个雷区。当Bob拥有两个不同租户的账户时,情况变得更加复杂

  • 我在这里遗漏了什么吗?

    我在这里稍微扭曲了你的问题。假设Bob在
    tenu a
    tenu b
    上都有账户

    如果给Bob一个网络范围的帐户,可以在一个用户下将Bob的租户特定帐户链接在一起,这将简化对第三方身份验证的支持。在不明确的情况下,仍然会有UI开销,因为Bob必须选择正确的租户,但这是一个必要的缺点

    如果问题是Bob@ten_a是一个不同的人Bob@ten_b,那么URL路由就变得至关重要,特别是考虑到OAuth的支持。仅在Bob访问特定租赁时启用OAuth(例如,
    ten_.a.software.com
    )。尝试使用OAuth登录
    software.com
    将失败

    如果Bob忘记了租户特定的URL,租户管理员应负责提醒他


    这大致就是我几年前在那里拥有一个帐户时仍在使用的模式。

    Bob是有一个全球帐户,还是每个租赁都有一个帐户?@aaantoine每个租赁都有一个帐户。没有全球租户。谢谢。这是一个相当全面的问题,鉴于ti是唯一的一个,它值得接受:)