【问题标题】:Correct implementation of multi-tenancy in Azure Active Directory在 Azure Active Directory 中正确实施多租户
【发布时间】:2019-05-20 14:05:58
【问题描述】:

假设我设置并创建了一个新的 Azure 帐户和订阅。 Azure 会自动为我创建一个名为“somedomain.onmicrosoft.com”的 Azure AD。

稍后我将 REST API 和 Angular SPA 应用程序部署到 Azure。由于我使用 Azure AD 对这两个应用程序进行身份验证和授权,因此我在我的 Azure AD 上的域“somedomain.onmicrosoft.com”下注册了它们。

一切正常,但一段时间后我意识到我想允许其他组织访问我的服务/应用程序。在做了一些研究之后,我意识到我想要实现的是多租户

为了注册一个新的租户,我执行以下操作:

  1. 转到 Azure 门户。
  2. 在左侧刀片菜单上单击“创建资源”并搜索“Azure Active Directory”。
  3. 创建一个名为“tenant-1.onmicrosoft.com”的新目录。

接下来,我根据this documentation 更新我注册的应用程序(在“somedomain.onmicrosoft.com”上) - 启用多租户和公共端点。

在所有这些之后,来自 AD“somedomain.onmicrosoft.com”和“tenant-1.onmicrosoft.com”的用户都应该能够进行身份验证和访问我的服务。

问题

这是实现和实施多租户的正确方法吗?

【问题讨论】:

  • 从 Azure AD 的角度来看,是的。

标签: azure active-directory azure-active-directory


【解决方案1】:

您无需创建新的 Azure AD 租户 (xyz.onmicrosoft.com)。只需在现有租户中注册应用程序或将现有应用程序标记为多租户。然后,现有的其他 AAD 租户将能够注册以使用您的应用程序,而无需进一步注册。您将需要修改您的应用程序代码以接受来自其他租户的令牌,例如enter link description here 此链接指向常规 .NET Web 应用程序,而不是 SPA。您需要将其翻译到您的 SPA 环境中。

【讨论】:

  • 从未听说过“根”或“子”AAD。在一个 AAD 租户中注册了一个多租户应用程序(使用 App Registration)——它获取一个应用程序和一个服务主体对象——并且可以在任何其他 AAD 租户中订阅(只是一个服务主体对象)。例如,您可以将 O365 视为在 Microsoft Corporate 租户中注册并订阅了数千个其他客户租户的多租户应用程序。当您订阅时,您有效地告诉您的租户可以响应来自该应用程序的令牌请求。您通常在首次登录应用时订阅。
  • 那个O365的例子很好,理清了很多东西!非常感谢,请原谅我与 root 和 child 的糟糕比较。
  • 宁可在你的后端 API 中保留一个允许的颁发者列表,当你验证它从你的 JS 前端收到的令牌时,验证令牌颁发者是否在列表中。
  • 你很幸运,我刚刚写了一篇文章:joonasw.net/view/…
  • 像往常一样好的博客@juunas .. @OverflowStack 您没有明确提到您使用的是 Azure AD v1 还是 v2 端点。请注意,答案中提到的示例链接适用于 v1,而juunas 的博客根据 v2 使用发行者 url。基本概念将保持不变,但会有一些细微的差别.. 像 v1 的颁发者 url 的格式是 https://sts.windows.net/<TenantId> 而对于 v2 端点颁发者 url 就像 https://login.microsoftonline.com/{TenantId}/v2.0
【解决方案2】:

我不确定您的高级用例,但有一点需要注意关于 AAD 多租户方法。您假设登录者拥有 Azure AD 租户,例如通过 Office365。

如果他们没有 Azure AD,那么他们将无法登录。

您“可以”为每个新租户创建一个 AAD 并在其中创建一个用户帐户。 他们将拥有 bob@mydomain.onmicrosoft.com 地址,以后可以添加自己的域。

这样他们就可以利用 AzureAD 的所有企业功能。 这可能是一个用例,但我认为每个租户都需要一个 AAD,我不确定限制或这是否是最佳实践。

如果您想要社交登录/其他 OpenIDConnect,您也可以查看 B2C。

【讨论】:

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