核心是配置双向可传递林信任,前提为DNS双向解析、时间偏差≤5分钟、双方林功能级别≥Windows Server 2012;需用nltest命令验证可达性与DC发现,并注意选择性身份验证对SPN授权的显式要求。
在不同林之间建立信任关系实现跨林身份认证,核心是配置林信任(forest trust),并确保底层基础设施就绪——它本身不自动授权访问,但为 kerberos 和 ntlm 身份验证打通路径。
前提条件必须满足
信任能否成功,不取决于操作步骤是否完整,而在于三个基础是否稳固:
- DNS 双向解析正常:两林根域的 DNS 后缀必须能互相解析 A 记录和 SRV 记录(如 _ldap._tcp.rootdomain.com);推荐在各自 DNS 服务器中添加条件转发器或存根区域
- 时间偏差 ≤5 分钟:Kerberos 对时钟敏感,建议统一指向同一 NTP 源(如 time.windows.com 或内部域控制器)
- 功能级别兼容:双方林功能级别至少为 Windows Server 2012(Windows Server 2016+ 更佳),否则无法启用选择性身份验证、声明转换等关键安全特性
创建双向可传递林信任
这是最常用、最易维护的跨林信任类型。操作可在任一林的域控制器或安装 RSAT 的管理机上完成:
- 打开“Active Directory 域和信任关系”管理控制台 → 右键本地林根域 → “属性” → “信任”选项卡 → “新建信任”
- 在向导中:
- 信任名称填对方林的 DNS 根域名(如 fabrikam.com)
- 信任类型选“林信任”
- 方向选“双向”
- 传递性保持默认“可传递”
- 输入对方林管理员账户凭据(需有 Enterprise Admin 权限)
- 完成后,在双方林的“信任”属性页中均可看到该信任条目,状态应为“已验证”
验证信任是否真正可用
仅看控制台显示“已建立”不等于能用。必须执行命令级验证:
- nltest /domain_trusts:查看本地域识别的所有信任关系
- nltest /trust_domains:fabrikam.com:测试与目标林的单向可达性(返回“0x0”表示成功)
- nltest /dsgetdc:fabrikam.com:确认能否发现对方林的域控制器(关键!失败多因 DNS 或防火墙)
- 尝试用 UPN 登录:如 user@fabrikam.com 在 contoso.com 林的计算机上登录,成功即说明 Kerberos 身份认证通路已通
注意选择性身份验证的影响
若在信任属性中启用了“选择性身份验证”,则跨林用户默认无法访问任何服务——必须显式授权:
- 对每个需要访问的服务(如文件服务器 CIFS、Web 服务器 HTTP),需在目标林中将其 SPN 添加到源林用户的“Validated write to service principal name”权限中
- 或更常用的做法:在目标林资源(如共享文件夹)的 ACL 中,直接添加源林用户/组,并确保该服务主机账户启用“允许跨林 Kerberos 身份验证”组策略
- 未启用该选项时,默认使用“域身份验证”,权限控制完全依赖目标林 ACL,更简单但暴露面略大










