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

Azure active directory 单个Azure Active Directory应用程序中的多租户,azure-active-directory,single-page-application,rbac,Azure Active Directory,Single Page Application,Rbac,我有几十个Azure Active Directory API和SPA,它们相互通信。以下是一个例子: 用户-具有使用SPA和API 1所需的角色 SPA-使用委派权限与API 1对话 API 1-使用应用程序权限与API 2对话 API 2 这些SPA和API在Azure Active Directory中都有一个应用程序和客户端ID,但它们是多租户的,因为它们使用基于角色的访问控制(RBAC)为多个国家/地区的内部用户提供服务 上述所有应用程序都在内部运行,但我有一个新的要求,即我们需要

我有几十个Azure Active Directory API和SPA,它们相互通信。以下是一个例子:

  • 用户-具有使用SPA和API 1所需的角色
  • SPA-使用委派权限与API 1对话
  • API 1-使用应用程序权限与API 2对话
  • API 2
这些SPA和API在Azure Active Directory中都有一个应用程序和客户端ID,但它们是多租户的,因为它们使用基于角色的访问控制(RBAC)为多个国家/地区的内部用户提供服务


上述所有应用程序都在内部运行,但我有一个新的要求,即我们需要将SPA应用程序移交给公司外部的用户,并且他们不能为其他租户查看SPA的部分内容,也不能为其他租户调用API。如何实现这一点?

对于您的场景,我认为您可以使用它

例如:

您可以在Azure AD应用程序中为SPA创建两个角色。一个是
管理员
,他可以访问整个SPA站点和API 1。一个是
用户
,只能访问零件SPA,不能访问API 1。然后,您可以将角色分配给用户。如果您有AAD basic或Premuim,则可以将角色分配给组

完成此操作后,您将在id_令牌中获得角色信息。这样你就可以让他们有不同的方式进入你的水疗中心。其余的工作应该建立在您的水疗中心,为不同的用户提供不同的访问

你也可以阅读乔纳斯的著作以了解更多细节

另外,正如我所想,这个答案只是一个解决方案,它可能与我无法测试的真实场景略有不同

希望这有帮助