我们正在运行一个由多台不同的 Windows 机器(Vista、Windows 7、Windows 10、2008 R2、2012 R2 等)组成的 Active Directory。我必须想出一个允许精细管理本地权限的概念。目前有太多人获得了机器的完全权利。
我计划执行以下操作:
- 管理员(ServerA 上的本地组)<==isMemberOf()==服务器A_管理员
- 备份操作员(ServerA 上的本地组)<==isMemberOf()==ServerA_Backup 操作员
- ETC...
然后,我将对 ServerB 执行相同操作,依此类推。稍后,我将把这些 AD 组聚合成更大的组,如下所示:
- Server_Administrators(成员:ServerA_Administrators、ServerB_Administrators,...)
- Server_Backup 操作员(成员:ServerA_Backup 操作员、ServerB_Backup 操作员,...)
- ETC。
这样我就可以从 AD 端控制哪些用户拥有本地管理员权限。我可以同时授予用户所有机器上的管理员权限,而其他用户只能在几台机器上(或一台机器上)拥有管理员权限。
缺点是我会破坏 AD 数据库,因为需要许多新的组。
不幸的是,我找不到任何来自微软的文档来描述在 AD 环境中处理本地内置组的最佳实践。
实现我的目标的最佳方法是什么?
答案1
组数本身不是问题,最终是可编写脚本的 - 组成员数才是问题!(例如由于 kerberos 最大令牌大小)。
我更喜欢以下内容(本地管理员成员的示例)
站点 A
主机 A1:HostA1-Admin、SiteA Admin
主机 A2:HostA2-Admin、SiteA Admin
站点 B
主机 B1:HostB1-Admin、SiteB Admin
主机 B2:HostB2-Admin、SiteB Admin
因此,您可以将单个主机或站点相关的管理分配给您的同事。始终尝试减少组成员身份。级联组不会减少这种情况(请参阅 whoami /groups)。如果您有一个森林,情况会有所不同,但问题保持不变。
根据您的域大小,使用脚本或 gpos 将这些组添加到您的本地管理员。
此外,请参阅活动目录中的组概念(域本地/全局/通用),这对于森林很重要,但对于本地域也很重要,因为它会影响全局目录(它是您的广告的搜索索引,被许多 MS 服务使用)。Microsoft 对本地组和全局组也使用术语资源和用户(?)组,这已经暗示了预期用途。
答案2
请注意用户所属的组数!此数字会影响Kerberos 票证的大小t. 达到一定限制后,用户将无法登录。这在大型域中非常重要。
我建议不要按“每个服务器”创建组,而是按“每个角色”的用户(会计、操作员、经理、管理员)创建组。如果需要,这些组还包括本地服务器组。这样可以最大限度地减少用户所属的域组数量。