我有一个经典的3层应用程序(数据库,API和UI)在Azure云上运行。现在,我想扩展此应用程序,并为不同的客户群启用它。因此,现在我的数据库中有属于公司A的用户。我使用Azure AD进行身份验证,通过登录成功进行身份验证后,用户可以调用必要的API。
我现在想将此设置扩展到公司B。我已经确定我不会使用相同的数据库来保存公司B的数据。因此,我将拥有一个新的数据库来容纳公司B的所有数据。我将使用相同的UI和API来为公司A和公司B提供服务器。
现在,我正在使用Azure AD创建在每次API调用时都会在我的API中验证的JWT令牌。通过设置多租户,我现在还必须从该令牌中识别出API调用所属的公司,以便我可以连接到适当的数据库。我一直在阅读有关Azure AD中的多租户的信息,但不确定这是否是我应该做的正确的事情。关于如何实现的任何想法?
答案 0 :(得分:2)
设计多租户应用程序时,必须从几种模式中进行选择。
https://docs.microsoft.com/en-us/azure/sql-database/saas-tenancy-app-design-patterns
取决于您的许多功能:
租户隔离,可伸缩性要求,开发复杂性,操作复杂性和定制。最大的工厂将是安全性和隔离性。
根据您的描述,您似乎在多租户应用中,每个租户都有数据库。
答案 1 :(得分:1)
我建议阅读Azure Active Directory中的B2B和B2C协作。
https://docs.microsoft.com/en-us/azure/active-directory/b2b/compare-with-b2c
通常,我认为您没有做错任何事情。