20.11. 复制帐户锁定属性

如果登录尝试失败了一定次数,则帐户锁定策略将阻止用户 ID 访问目录服务器。这可防止黑客或其他恶意人员通过猜测密码来静默访问目录服务器。密码策略在本地设置,通常帐户锁定属性是每个副本的本地。这意味着,人可以尝试登录一个副本,直到达到帐户锁定计数前,然后再次尝试另一个副本。防止复制与条目帐户锁定计数相关的属性,以便在单一供应商上尝试登录失败时,恶意用户会被锁定到配置中的每个供应商和消费者副本。
默认情况下,不会复制三个密码策略属性,即使其他密码策略属性也是如此。这些属性与登录失败和锁定周期相关:
  • passwordRetryCount
  • retryCountResetTime
  • accountUnlockTime

20.11.1. 管理帐户锁定和复制

在复制环境中强制执行密码和帐户锁定策略稍有不同:
  • 在数据供应商上强制执行密码策略。
  • 在参与复制的所有服务器上强制使用帐户锁定。
目录中的一些密码策略信息会自动复制:
  • passwordMinAge and passwordMaxAge
  • passwordExp
  • passwordWarning
但是,配置信息保存在本地,且不复制。此信息包括密码语法以及密码修改的历史记录。除非为复制进行了特别配置的,否则不会复制帐户锁定计数器和层。
在复制环境中配置密码策略时,请确保这些元素已就位,因此密码策略和帐户锁定设置会一致强制执行:
  • 所有副本都会发出来自即将等待密码过期的服务器的警告。此信息保留在每台服务器上,因此如果用户依次绑定到多个副本,则多次会发出相同的警告。另外,如果用户更改密码,则可能需要时间来将此信息过滤到副本。如果用户更改密码,然后立即重新绑定,则可能会发现绑定失败,直到副本注册更改为止。
  • 所有服务器上应该执行相同的绑定行为,包括供应商和副本。确保在每个服务器上创建相同的密码策略配置信息。
  • 帐户锁定计数器在多层次环境中可能无法按预期工作。默认情况下,帐户锁定计数器不会被复制(尽管可以进行配置)。如果帐户锁定属性没有复制,则用户可以从一个服务器锁定,但可以成功绑定到另一台服务器(或者,用户可能被解锁在一个服务器上,仍然阻止在另一台服务器上)。如果复制了帐户锁定属性,那么在一个服务器上的帐户锁定变化以及该更改被传播到其他服务器时,可能会滞后。它取决于复制计划。
  • 为复制创建的条目(例如,服务器身份)需要有永不过期的密码。要确保这些特殊用户有没有过期的密码,请在条目中添加 passwordExpirationTime 属性,并为它赋予 20380119031407Z (有效范围的顶部)。
注意
如果启用了密码策略,并且 alwaysRecordLogin 参数设置为 yes,则 lastLoginTime 属性的值可以在供应商和只读副本上有所不同。例如,如果用户登录到只读副本,则 lastLoginTime 属性会在本地更新,但该值不会复制到供应商服务器。

20.11.2. 配置目录服务器以复制密码策略属性

特殊的核心配置属性,用于控制是否复制密码策略操作属性。这是 passwordIsGlobalPolicy 属性,它在消费者目录服务器配置中启用,以允许使用者接受密码策略操作属性。
默认情况下,此属性设为 off
要启用复制这些属性,请更改消费者上的 passwordIsGlobalPolicy 配置参数:
# dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwdisglobal="on"
将该值更改为 on 允许复制 passwordRetryCountretryCountResetTimeaccountUnlockTime

20.11.3. 为密码策略属性配置同步复制

设置 passwordIsGlobalPolicy 属性会影响复制中的消费者,从而使使用者能够接收这些属性的更新。要控制密码策略属性是否实际由供应商复制,请使用部分复制,用于控制复制哪些特定条目属性。
如果复制密码策略属性,请确保这些属性包含在部分复制协议中(与默认情况下相同)。
如果在消费者上将 passwordIsGlobalPolicy 属性设置为 off,则不应复制密码策略属性,请使用部分复制(在 第 15.1.7 节 “使用 DNATactional Replication 复制子属性集”中相同)强制该属性在供应商中,并在复制协议中特别排除这些属性。
有关配置复制的详情,请参考:
当您在上面链接的步骤中创建复制协议时,请配置部分复制:
  1. 在供应商上配置复制协议时,请单击 Show Advanced Settings
  2. Exclude Attributes 字段中输入 passwordRetryCountretryCountResetTime,以及 accountUnlockTime 属性名称。
  3. 完成配置复制协议。