单个 Azure Active Directory 应用程序中的多租户
Multi-Tenancy in a Single Azure Active Directory Application
我有几十个相互通信的 Azure Active Directory API 和 SPA。这是一个例子:
- 用户 - 具有使用 SPA 和 API1
所需的角色
- SPA - 使用委派权限与 API 1 交谈
- API 1 - 使用应用程序权限与 API 2 对话
- API 2
这些 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 了解更多详情。
另外,这个答案只是我想的一个解决方案,它可能与我无法测试的实际情况有点不同。
希望对您有所帮助!
我有几十个相互通信的 Azure Active Directory API 和 SPA。这是一个例子:
- 用户 - 具有使用 SPA 和 API1 所需的角色
- SPA - 使用委派权限与 API 1 交谈
- API 1 - 使用应用程序权限与 API 2 对话
- API 2
这些 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 了解更多详情。
另外,这个答案只是我想的一个解决方案,它可能与我无法测试的实际情况有点不同。
希望对您有所帮助!