fas是ad预定义且不可修改的敏感属性集,强制阻止unicodepwd等约70个属性复制到rodc;实际可管的是prp策略,通过允许/拒绝列表控制哪些用户非-fas属性可缓存于rodc以支持本地认证。
在 windows server 中为 active directory 配置只读域控制器(rodc)的筛选属性集(filtered attribute set, fas),核心目标是防止敏感属性(如 unicodepwd、ntpwdhistory、msds-userpasswordexpirytimecomputed 等)被复制到 rodc。fas 是系统预定义且不可修改的,但你可以通过 密码复制策略(prp) 和 rodc 委派管理间接控制哪些属性实际出现在 rodc 上。
以下是关键操作逻辑和实用步骤:
明确 FAS 是只读内置机制
RODC 的筛选属性集由 Active Directory 内部硬编码定义,包含约 70 个高敏感属性(例如密码相关、加密密钥、证书信息等)。你不能添加、删除或编辑 FAS 列表。它的作用是在复制过程中自动跳过这些属性——无论 PRP 如何设置,FAS 属性永远不会被复制到 RODC。
用密码复制策略(PRP)控制可缓存凭据的用户/计算机
虽然 FAS 不可改,但 PRP 决定了哪些用户或计算机的完整账户对象(除 FAS 属性外) 可以被复制并缓存在 RODC 上,用于本地身份验证:
- 默认情况下,没有任何用户或计算机被允许在 RODC 缓存密码
- 必须显式将安全组(如
Allowed RODC Password Replication Group)或具体账户加入 PRP 的“允许列表” - 同时可配置“拒绝列表”(如
Denied RODC Password Replication Group),优先级高于允许列表
✅ 实操建议:
- 创建一个专用安全组(如
RODC-Auth-Users)- 将需要本地登录的用户加入该组
- 在 RODC 安装向导的 RODC 选项页 或 PowerShell 中,用
-AllowPasswordReplicationAccountName "RODC-Auth-Users"指定- 这样,这些用户的非-FAS 属性(如
sAMAccountName、displayName、memberOf)会复制到 RODC,支持离线认证;而密码哈希等仍受 FAS 保护,不落地
验证 FAS 是否生效
无需手动检查属性是否被过滤,可通过以下方式确认机制运行正常:
- 使用
repadmin /showobjmeta <rodc> "CN=John Doe,CN=Users,DC=contoso,DC=com"</rodc>
查看目标用户对象在 RODC 上的复制元数据 —— FAS 属性显示为NOT_FOUND或无值 - 查询 RODC 的
ntds.dit数据库(需脱机使用esentutl)可证实unicodePwd等字段为空
注意事项
- FAS 对所有 RODC 统一启用,无法按站点或单个 RODC 关闭
- 即使某用户被加入 PRP 允许列表,其 FAS 属性依然不会复制(这是设计强制行为)
- 若需让某属性“可复制”,唯一办法是它不在 FAS 列表中;若业务强依赖某敏感属性,请评估是否应避免使用 RODC,或改用可写 DC
FAS 是 AD DS 内置的安全边界,不是配置项。真正需要你主动管理的是 PRP 和委派权限——它们决定了谁能在 RODC 上获得有限但可用的身份信息。











