【问题标题】:Multi-Tenancy in a Single Azure Active Directory Application单个 Azure Active Directory 应用程序中的多租户
【发布时间】:2018-03-07 18:06:04
【问题描述】:

我有几十个相互通信的 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-active-directory single-page-application rbac


    【解决方案1】:

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

    例如:

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

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

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

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

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-20
      • 2017-10-10
      • 2016-08-04
      • 2020-02-01
      • 2017-10-22
      • 1970-01-01
      • 2021-08-24
      • 1970-01-01
      相关资源
      最近更新 更多