本章目录(7)On this page (7)
  1. 域控本身
  2. 三层账户模型
  3. OU 的划分
  4. 组的设计
  5. 密码策略
  6. 审计
  7. 坑
文章Articles

Active Directory 权限模型

域的搭建要点、OU 的划分逻辑、三层账户模型、组的分层与委派,以及把「权限跟岗位走」落实到目录结构上的方法。

更新Updated 2026.10.17identityactive-directorywindows

域控本身

两台域控做多主复制,不要做主从。主从方案恢复主域控的时间是以小时计的,多主的代价只是需要偶尔用 FSMO 转移。

# 提升为域控(第一台)
Install-ADDSForest `
  -DomainName "corp.example.internal" `
  -DomainNetbiosName "CORP" `
  -SafeModeAdministratorPassword (Read-Host -AsSecureString) `
  -InstallDns:$true

DNS 是域控的一部分,不是可选项。域里 DNS 坏了,登录会失败,组策略会失败,报错信息还完全不提 DNS——这是最耗时间的一类故障。

三层账户模型

搭域之前先把账户结构想清楚,这是后面所有权限的地基:

CORP\域用户          日常登录、办公
                     │  管理:AD 正常管理
                     ▼
DOMAIN\ITAdmin       IT 运维(加入各电脑本地管理员组)
                     │  管理:AD 组策略 Restricted Groups
                     ▼
.\AdminLocal(本机)  紧急备用、离线修复
                        管理:LAPS 随机密码 + 定期轮换

三层的分工是刻意的:

  • 日常办公永远用域账户,不碰本地账户,这样登录、注销、审计全部落在域日志里。
  • ITAdmin 通过 Restricted Groups 进入各机本地管理员组,IT 人员不再共享一个「万能密码」,权限随组走。
  • .\AdminLocal 交给 LAPS 托管,随机、轮换、只在 AD 里——它是域控故障时唯一还能进系统的门。

OU 的划分

OU 结构是这套模型的骨架,它要同时满足两个互相拉扯的要求:

  • 组策略要能作用域到它(要跟部门/岗位对齐)。
  • 委派管理要能作用域到它(要跟 IT 的管理边界对齐)。

大多数组织里这两个是一致的,所以按部门建 OU 就行。少数不一致的时候,以组策略的作用域为主,把委派拆到更细的子 OU。

corp.example.internal
├── Users
│   ├── Corp
│   │   ├── Finance
│   │   ├── Engineering
│   │   ├── HR
│   │   └── IT
│   └── Guests
├── Computers
│   ├── Servers
│   ├── Workstations
│   └── Managed
└── ServiceAccounts          ← 服务账号单放,且必须设长随机密码

ServiceAccounts 单独一层不是洁癖:服务账号在 Users 里时,域用户「改密码」策略会作用于它,而服务账号的密码是不能随便改的。

组的设计

三层,不要更多:

角色组(Role)        Finance.Reconciliation
  ↑ 直接成员是人
岗位组(Job)         Finance.Accountant
  ↑ 直接成员是角色组
资源组(Resource)    App.Finance.ERP   ← 权限授给这里

权限只授到资源组。这样换人时只需要动人所在的角色组,任何针对资源的授权都不需要重新检查。

域内置组要锁死:Domain Admins 排除特定账号(尤其服务账号)、Domain Users 移出「登录到域控」的权限。默认状态下把域用户加进本地管理员是最常见的提权入口。

密码策略

Set-ADDefaultPasswordPolicy -Identity "corp.example.internal\Default Domain Policy" `
  -MinPasswordLength 12 -ComplexityEnabled $true `
  -MinPasswordAge 1 -MaxPasswordAge 365 -LockoutThreshold 5 -LockoutDuration 30

MaxPasswordAge 365 配合强制改密,比 90 造成的实际安全收益高得多,同时避免了用户为了应付频繁过期而把密码写在便利贴上。锁定阈值 5 次是合理的平衡点:既能挡住在线撞库,又不至于让一台域控重启就锁掉所有人。

审计

开了这个才有审计记录。没开的话,所有权限操作都是无痕的:

Set-ADObject -Identity "CN= corp.example.internal,CN=Directory Service,..." `
  -@{auditPolicy = "SUCCESS FAIL"; '@msDS-ResultantSetPolicy@' = $null}
Set-ADAuditPolicy -PreAuditEvents -Category "Authentication","Directory Access" -Success Enabled

配合 Sysmon 的 4662 事件(见 Sysmon),能看到「谁在什么时候改了哪条 ACL」。

坑

  • DNS 转发器配了外网 DNS。域内机器会把内网域名解析到公网,拿到的是运营商的拦截页。域控的转发器里只放内部 DNS。
  • 时间不同步。Kerberos 依赖时钟同步,偏差超过 5 分钟会直接登录失败,而报错是「密码错误」。域控本身必须先指向可靠的时间源。
  • 删除 OU 用工具批量做。ADSI Edit 或者第三方工具删 OU 时会留下孤儿对象,事后极难排查。优先用图形界面,或者写脚本显式设置 ProtectedFromAccidentalDeletion。