【问题标题】:Azure Active Directory Application per Country or Role per Country每个国家/地区的 Azure Active Directory 应用程序或每个国家/地区的角色
【发布时间】:2023-03-05 08:51:01
【问题描述】:

我有一个应用程序多次部署到多个国家/地区,该应用程序使用 Azure Active Directory 进行保护。我有一个要求,人们应该只能在他们的国家/地区访问该应用程序。实现这一目标的最佳方法是什么:

每个国家/地区的 Azure AD 应用程序

为每个国家/地区创建一个新的 Azure AD 应用程序,并在每个国家/地区使用它们各自的客户端 ID。这确实增加了我必须处理的配置量。

每个国家/地区的 Azure AD 角色

我已经在使用基于角色的访问安全 (RBAC)。我可以为每个国家/地区创建一个角色,例如Kenya,然后让应用程序的 Kenya 实例需要 Kenya 角色。

Azure AD 多租户部署

每个国家/地区都不是一个单独的组织,都是一家公司,所以我不确定 Azure AD 多租户是否适用于我的用例。

【问题讨论】:

  • 应用程序的 URL 是否相同?如果是这样,您可以检查流量管理器或其他类似的负载/流量平衡器,而不是 Azure AD。
  • 每个国家都有自己的网址。
  • 这是一个 Web 应用程序/云服务吗?
  • 这是一个 Web 应用程序 (API)。

标签: azure azure-active-directory rbac


【解决方案1】:

我可能会在每个国家/地区担任多个角色。您可以将这些国家/地区角色分配给 AAD 组(如果使用允许这样做的许可证),并且通过它还允许将来访问多个实例的可能性。当然,如果您确实确定没有必要,那么您可以直接将用户分配给角色。管理工作量要小得多,这就是我要去做的事情。当然,唯一的事情是您必须将所有实例的所有回复 URL 添加到一个应用程序,而不是多个应用程序中的一个。

基于角色的方法的一个缺点是在应用中拥有其他角色变得有点困难,例如如果您想拥有肯尼亚管理员角色。

为每个国家/地区创建一个应用程序似乎有点矫枉过正,但它会有一些优势。首先,如果需要,可以将用户分配到多个应用程序以访问多个国家/地区(并且无需 AAD 的付费许可)。可以使用脚本自动创建应用程序。对于每个部署,您必须拥有的主要配置是客户端 ID 和密码。但一个主要的缺点是,如果你需要,例如向 API 添加权限,您必须将其添加到每个应用程序,然后在每个应用程序上同意它。

多租户意味着除了具有不同的客户端 ID 和机密之外,您的用户还必须添加到不同的 Azure AD。隔离会很好,但这肯定会导致最多的管理工作。

【讨论】:

  • RBAC 似乎是最简单的方法,但我如何避免每次需要创建新租户时都必须为每个 Azure AD 应用程序创建新角色?
  • 那么您在每个国家/地区都有一个租户?好吧,您可能可以通过使用 PowerShell 脚本或类似的脚本来添加角色来解决很多工作。但是,是的,这种方法管理所有内容的工作量最大,如果您将每个人都放在一个租户中,它会更简单。
  • 我在每个国家或有时在一个国家有一个租户。目前,一切都是使用 Azure AD 的基本订阅(在非洲工作的教育公司)编写的 PowerShell 脚本。我能看到的唯一解决方案是编写更多的 PowerShell。
  • 嗯,如果您将应用程序设为多租户,我认为应用程序上定义的角色将可以在所有租户中分配。当然,问题是当您稍后将角色添加到应用程序时,它不会传播到其他租户中的服务主体,而无需再次创建它们。虽然这也可以用 PS 完成。我不知道这是否真的会让事情变得更容易。
猜你喜欢
  • 1970-01-01
  • 2011-08-25
  • 1970-01-01
  • 2019-06-24
  • 1970-01-01
  • 2015-04-06
  • 1970-01-01
  • 2021-12-04
  • 1970-01-01
相关资源
最近更新 更多