每个国家/地区的Azure Active Directory应用程序或每个国家/地区的角色

每个国家/地区的Azure Active Directory应用程序或每个国家/地区的角色,azure,azure-active-directory,rbac,Azure,Azure Active Directory,Rbac,我将一个应用程序部署到多个国家/地区,并使用Azure Active Directory进行安全保护。我有一个要求,人们只能在他们的国家访问该应用程序。实现这一目标的最佳方式是什么: 每个国家/地区的Azure广告应用程序 每个国家/地区创建一个新的Azure广告应用程序,并在每个国家/地区使用各自的客户端ID。这确实增加了我必须处理的配置量 每个国家/地区的Azure广告角色 我已经在使用基于角色的访问安全性(RBAC)。我可以为每个国家创建一个角色,例如肯尼亚,然后让应用程序的肯尼亚实例需要

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

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

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

Azure AD多租户部署
每个国家都不是一个单独的组织,都是一家公司,所以我不确定使用Azure AD multi-tenant是否适用于我的用例。

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

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

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


多租户意味着,除了拥有不同的客户端ID和机密外,您的用户还必须添加到不同的Azure广告中。隔离效果会很好,但这肯定会导致最高数量的管理工作。

应用程序是否具有相同的URL?如果是这样,您可以检查Traffic manager或其他类似的负载/流量平衡器,而不是Azure AD。每个国家都有自己的URL。这是一个Web应用程序/云服务吗?它是一个Web应用程序(API).RBAC似乎是最简单的方法,但我如何避免每次需要创建新租户时都必须为每个Azure AD应用程序创建新角色?因此每个国家/地区都有一个租户?通过使用PowerShell脚本或类似的脚本添加角色,您可能可以完成很多工作。但是,是的,这种方法在管理每件事情上工作量最大,如果每个人都在一个租户中,那么就更简单了。我每个国家都有一个租户,有时一个国家有一个州。目前,一切都是使用Azure AD的基本订阅(在非洲工作的教育公司)编写的PowerShell脚本。我能看到的唯一解决方案是编写更多的PowerShell。嗯,如果你让应用程序成为多租户,我认为应用程序上定义的角色将可以分配给所有租户。当然,问题是当您稍后向应用程序添加角色时,如果不再次创建它们,它将不会传播到其他租户中的服务主体。虽然这也可以通过PS来实现。我不知道这是否会让事情变得更容易。