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

Azure Active Directory Application per Country or Role per Country

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

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

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

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

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

Azure AD 多租户部署

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

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

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

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

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