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

时间:2018-03-06 10:48:27

标签: 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)为多个国家/地区的内部用户提供服务)。

以上所有应用程序都在内部运行,但我有一项新要求,即我们需要将SPA应用程序移交给公司外部的用户,并且他们不应该看到其他租户的SPA部分以及他们一定不能为其他租户调用API。如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

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

例如:

您可以在SPA的Azure AD应用程序中创建两个角色。一个是Admin,可以访问整个SPA站点和API 1.一个是User,只能访问部分SPA而无法访问API 1.然后您可以为用户分配角色。如果您有AAD basic或Premuim,您可以为组分配角色。

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

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

Addtional,这个答案只是我想的一个解决方案,它可能与你无法测试的真实场景有点不同。

希望这有帮助!