带有Web App API的Azure AD Auth的多租户

时间:2019-01-31 14:55:34

标签: azure architecture active-directory

我有一个经典的3层应用程序(数据库,API和UI)在Azure云上运行。现在,我想扩展此应用程序,并为不同的客户群启用它。因此,现在我的数据库中有属于公司A的用户。我使用Azure AD进行身份验证,通过登录成功进行身份验证后,用户可以调用必要的API。

我现在想将此设置扩展到公司B。我已经确定我不会使用相同的数据库来保存公司B的数据。因此,我将拥有一个新的数据库来容纳公司B的所有数据。我将使用相同的UI和API来为公司A和公司B提供服务器。

现在,我正在使用Azure AD创建在每次API调用时都会在我的API中验证的JWT令牌。通过设置多租户,我现在还必须从该令牌中识别出API调用所属的公司,以便我可以连接到适当的数据库。我一直在阅读有关Azure AD中的多租户的信息,但不确定这是否是我应该做的正确的事情。关于如何实现的任何想法?

2 个答案:

答案 0 :(得分:2)

设计多租户应用程序时,必须从几种模式中进行选择。

https://docs.microsoft.com/en-us/azure/sql-database/saas-tenancy-app-design-patterns

取决于您的许多功能:

租户隔离,可伸缩性要求,开发复杂性,操作复杂性和定制。最大的工厂将是安全性和隔离性。

根据您的描述,您似乎在多租户应用中,每个租户都有数据库。

https://docs.microsoft.com/en-us/azure/sql-database/saas-tenancy-app-design-patterns#d-multi-tenant-app-with-database-per-tenant

答案 1 :(得分:1)

我建议阅读Azure Active Directory中的B2B和B2C协作。

https://docs.microsoft.com/en-us/azure/active-directory/b2b/compare-with-b2c

通常,我认为您没有做错任何事情。