我正在尝试解决一个问题。我尝试使用的工具是 Active Directory,但我不确定它是否适合这项工作。
让我试着解释一下……
我正在开发一个应用程序(一个网站),我需要在其中设计一个安全模型/基础架构。我非常想使用 AD,因为 AD 的很多方面都与应用程序的要求完美契合。事实上,除了一个要求之外,其他所有要求都完美契合。我遇到的问题是,我必须在同一个活动目录中控制同一个应用程序的多个实例,并且用户必须能够以对应用程序中相同区域的不同访问权限访问这些应用程序的子集...
有点难以解释,让我们举个例子。首先是简单而完美的例子:我只有一个用户(“User1”)和一个应用程序(“App1”)。应用程序内部有一组区域,每个区域的访问都必须受到限制。可以通过在 AD 中为每个区域提供一个关联的安全组来解决这个问题,用户必须是该安全组的成员才能访问该区域....例如,如果 UserA 应该有权访问 Area1,那么他必须是相应安全组的成员....小菜一碟!
让我们给这个例子增加一点变化:继续上面的例子,假设现在有两个应用程序正在运行,都由同一个 AD 控制,现在有两个应用程序:App1 和 App2。这两个应用程序共享相同的访问区域安全组和相同的源代码。现在我们要解决的问题是:如何让 UserA 成为 App1 中 Area1 的成员,而不是 App2 中 Area1 的成员?应用程序在让用户进入特定区域之前会检查安全组“Area1”的成员资格,但它无法看到是否已分配成员资格供 App1 或 App2 使用……?
因此,底线是:我如何控制对应用程序中区域的访问。必须能够授予对 App1 中 Area1 的访问权限,但限制对 App2 中 Area 1 的访问...请注意,应用程序(网站)不能为每个用户提供不同的配置(任何类型的 .config)。还请注意,用户和应用程序实例都有数万个。区域数量将达到数百个...
在 AD 中如何解决此类问题....?如果可能的话?
我不确定上面的解释是否有道理,但愿如此。如果没有,请告诉我...
答案1
IIUC 您需要为每个应用程序实例和区域的组合建立一个安全组。
App1 Area1 -> App1Area1Group
App1 Area2 -> App1Area2Group
App2 Area1 -> App2Area1Group
App2 Area2 -> App2Area2Group
因此,一切都通过适当命名组来完成。如果您愿意,您可以将组分成 OU。