单个 Azure Active Directory 应用程序中的多租户

Multi-Tenancy in a Single Azure Active Directory Application

我有几十个相互通信的 Azure Active Directory API 和 SPA。这是一个例子:

这些 SPA 和 API 在 Azure Active Directory 中各有一个应用程序和客户端 ID,但它们是多租户的,因为它们使用基于角色的访问控制 (RBAC) 为多个国家/地区的内部用户提供服务).

以上所有应用程序都在内部运行 但我有一个新的要求,我们需要将 SPA 应用程序移交给公司外部的用户,并且他们不应该能够看到 SPA 的部分内容对于其他租户,他们也不能为其他租户打电话给 API。如何实现?

对于您的场景,我认为您可以使用 Azure AD App roles

例如:

您可以在 SPA 的 Azure AD 应用程序中创建两个角色。一种是Admin,可以访问整个SPA站点和API 1。一种是User,只能访问部分SPA,不能访问API 1。那么你可以将角色分配给 users.If 您拥有 AAD basic 或 Premuim,您可以将角色分配给组。

完成此操作后,您将在id_token中获得角色信息。这样您就可以为他们提供对您的 SPA 的不同访问权限。其余工作应构建在您的 SPA 中,以向不同的用户提供不同的访问权限。

您还可以阅读 joonas 撰写的 this blog 了解更多详情。

另外,这个答案只是我想的一个解决方案,它可能与我无法测试的实际情况有点不同。

希望对您有所帮助!