概述
我们一直在努力让众多站点为需要访问其站点的每个用户映射共享驱动器。我们无法在他们的 AD 配置文件中对此进行标准化,因为有些用户经常移动,最终直到他们需要访问特定站点的共享驱动器时才告诉 IT。反过来,我们为每个站点创建了安全组,并将其用作站点 AD 结构根部组策略中的项目级目标,希望它能够逐渐渗透并只为安全组中的用户提供他们需要的驱动器。
系统信息
操作系统:Windows Server 2016
以下涉及两个 DC 上的四台机器
Domain Controllers (GPO, Active Directory)
操作系统:NetApp,不久的将来将被 Nutanix Files 取代。
Share Drives for each of our sites under the root and no sub-share's as the users will be populating these shared folders with whatever files they use/create
结构
我们将驱动器映射到连接到 NetApp 设备的用户。NetApp 设备具有基于每个站点名称的子文件夹,这些子文件夹又包含用户放入这些文件夹中的内容。结构类似于以下内容:
NetApp Shares
├── Site 1
├── Site 2
├── Site 3
├── Site 4
├── Site 5
我们有多个安全组,例如:
Site1-ShareDrive
Site2-ShareDrive
Site3-ShareDrive
Site4-ShareDrive
Site5-ShareDrive
在所述安全组中,我们有一些用户可能不在本站点的 OU 中,因为有些用户管理多个站点,或者经常移动并需要其部门内的多个站点。
例子:
Site1-ShareDrive
├── User13
├── User20
├── User33
├── User42
├── User51
Site4-ShareDrive
├── User13
├── User22
├── User23
├── User1
├── User5
├── User3
├── User100
Site9-ShareDrive
├── User13
├── User22
├── User23
├── User1
├── User53
├── User54
├── User545
广告结构:
All Sites
├── Division-1
| ├── Site 1
| ├── Site 2
├── Division-2
| ├── Site 3
| ├── Site 4
| ├── Site 5
├── Division-3
| ├── Site 6
| ├── Site 7
| ├── Site 8
├── Division-4
| ├── Site 9
| ├── Site 10
对于组策略,我们希望将策略置于“所有站点”级别,以便从理论上渗透到整个结构,但仅根据用户是否属于目标安全组来应用这些策略
问题
在组策略中,我们为每个站点创建新的策略,这些策略具有针对该特定站点安全组的项目级目标
例如:
User1 属于以下组:
Managers
Site1-ShareDrive
Site9-ShareDrive
用户 13 属于以下组:
Partner
Site1-ShareDrive
Site4-ShareDrive
Site9-ShareDrive
从逻辑上讲,我们的设置应如下:
User1
只能访问\\example.com\Shares\Site1 and \site9
User13
只能访问\\example.com\Shares\Site1, \site4 and \site9
不幸的是,如果再加上以下事实,即某些用户(可能是经理)只需要一个站点,而其他经理可能需要更多站点和合作伙伴访问他们负责的部门,那么这个问题就会变得更大。我们遇到的另一个问题是,一些站点是部门之间的合作,这就是为什么他们部门 OU 之外的一些用户需要访问另一个部门站点共享驱动器的原因。除了将它们添加到这些安全组之外,此时深入到文件级别的 NTFS 权限将是一场噩梦,因为我们正在使用旧的 NetApp 设备,而我们的供应商实际上很快就会将其淘汰。我们还没有关于何时迁移到新平台的时间表。
此外
我们希望隐藏用户无权访问的任何文件夹。例如,在上面的示例中,User1 甚至不知道 \example.com\Shares\Site8 的存在,因为该用户不属于相应的安全组
我们希望能够根据用户需要的站点应用一些安全组。同时在该安全组上放置一个项目级目标。我们当前的 OU 结构如下所示:
OU 结构示例
All Sites
Site 1
User13
Site 4
User1
Site 9
User545
问题
- 我们如何确保我们的结构适用于项目级定位?(即 GP:“Site1-ShareDrive Access”将通过选中“更新”和“重新连接”映射“\example.com\shares\Site1”驱动器,同时“在用户安全上下文中运行”和“项目级目标”设置为“Site1-ShareDrive”,并将其链接到“所有站点”)?
- 如果上述某些目标无法实现,我们如何才能确保用户的易用性,同时提高 IT 生产力?
答案1
一些东西:
隐藏没有权限的文件和文件夹:
要隐藏用户无权访问的文件夹,您可以在共享上启用“基于访问的枚举”。话虽如此,除非您有严格的要求,否则不建议这样做。ABE 可能会导致文件共享上的 CPU 使用率显著增加,因为每次遍历目录时都需要枚举每个文件的 ACL。
将 GPO 链接到 AD 逻辑站点:
如果您有一个代表每个物理位置的逻辑 AD 站点,您可以通过将映射驱动器的 GPO 直接应用于 Active Directory 逻辑站点来节省一些组策略首选项处理时间。(请注意,这需要使用 AD 站点和服务管理控制台或 AD PowerShell 模块将子网映射到特定站点。)这种方法的唯一挑战是少数用户需要访问多个站点的共享,无论他们位于哪个站点。这可以通过在特定于站点的 GPO 中创建一些冗余来实现驱动器映射,但同样...效率会降低。
返回组策略首选项:
听起来你对如何使用项目级定位来完成这项工作有了很好的初步了解。以下是假设的“分享 1“ 在 ”地点 A“:
编辑 GPO 并通过 展开User Configuration > Preferences > Windows Settings
,然后单击“驱动器映射”。
- 配置常规驱动器映射设置分享 1在地点 A。
- 转到“常用”选项卡,启用“项目级定位”,然后单击“定位...”设置按钮。
- 现在您将需要利用 ILT 多个集合来对定位条件进行分组。根据您的描述,我将创建如下所示的内容:
ILT 物品和收藏品
- 添加一个集合,其中“此集合为真”
- 添加条件
the user is a member of the security group "Site A"
- 添加条件
[AND] the site is "SiteA"
- 添加第二个集合(该集合为真)并将该集合的项目选项设置为或者
- 在第二个集合中,添加一个项目以包含需要访问多个站点共享的管理员。使用安全组并将该项目设置为“用户是安全组“站点管理员”的成员(假设该组有权访问多个站点共享)。
单击“确定”保存并关闭当前驱动器映射项。此示例可以解决您的难题。
动态访问控制
您可能还想研究在文件服务器上使用动态访问控制功能。此功能通过启用两个新功能使文件系统上的 ACL(访问控制列表)更加强大:
- 能够同时使用或者和和ACL 中的运算符
- 添加基于声明的权限或权限条件的能力。声明可以基于 3 种类型的对象:用户属性、设备属性或转换声明(通常来自策略中创建的规则)。
用户和设备声明可以基于 AD 中用户或设备对象的大多数属性,因此您可以假设创建一个 DAC 规则,该规则规定:(grant access to the user if they are in 'Group A' and are not on a mobile device and if they are using a computer that is in 'Site A'
这将基于 AD 中映射的 IP 地址子网)。您还可以使用数据分类策略来应用不同的动态访问控制规则,具体取决于用户或设备声明……但这是下一个级别!我建议研究 DAC,但要知道它具有比简单地完成良好的项目级定位配置更复杂的依赖关系。