我有一个问题,即如何在我的 SaaS 应用程序上下文中使用 Azure AD。我感觉 Azure AD 多租户与 SaaS 多租户是不同的术语。如果我错了,那么我希望有人能指出我的误解。
什么是 SaaS 多租户 (IMO):在一个应用程序中将数据和用户分开。在我看来,这是一个适用于许多小公司的应用程序。应用程序将数据存储在一个数据库中,并使用每个公司/租户的架构。每个公司可以有许多用户 - 通常是 1 - 5 个用户。SaaS 是一个 .NET Core,REST 应用程序。
作为客户,我有一个桌面应用程序。我可以实现 JWT 处理,但良好的做法建议使用现有解决方案,例如 Azure AD。因此,我在 Google 上搜索了它,但对于 Azure AD 多租户,我看到了 Azure AD B2B,但经过深入阅读,我认为这对我来说不是一个选择,因为我的客户(公司)通常不会有自己的 Azure AD。
我的问题是 - 如何使用 Azure AD?我感觉:
- 我应该只有一个租户/目录,这是我自己的。
- 我的 SaaS 应该将用户添加到目录中。
- 如何在我的目录中标记 1 - 5 个用户属于同一个 SaaS 租户?
Azure AD 主题对我来说很新,我将非常感谢能够帮助我在应用程序中实现身份验证环境的提示和技巧。
答案1
我认为你把事情想得太复杂了。
如果您希望在租户中部署一次应用程序,但您可以控制谁可以访问该应用程序(包括来宾帐户)并管理所有权限,那么请使用单租户应用程序:https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-register-app
如果您希望在租户中部署一次应用程序,并让其出现在不同的租户中,其中每个租户管理员负责管理他们自己的用户对该应用程序的访问和权限,那么请使用多租户应用程序:https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-convert-app-to-be-multi-tenant
您会发现注册这两个应用程序的过程基本相同,只需进行一些调整即可让多租户应用程序正常工作。
有关多租户应用程序的更多阅读内容:https://docs.microsoft.com/en-us/azure/active-directory/develop/single-and-multi-tenant-apps
如果您想尝试一下,这里有一个示例应用程序:https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2/blob/master/2-WebApp-graph-user/2-3-Multi-Tenant/README.md
当您邀请其他租户的来宾帐户到您的租户访问应用程序时,多/单租户应用程序的概念会变得有点模糊:https://docs.microsoft.com/en-us/azure/active-directory/external-identities/what-is-b2b
记住,思考这个问题的最佳方式是:谁将维护使用访问权限及其权限?回答这个问题将使确定要进行哪种类型的注册变得容易。希望这能有所帮助。