20.5. 配置临时密码规则

目录服务器密码策略支持在用户帐户中设置临时密码。如果您为用户分配临时密码,Directory 服务器会拒绝除密码更改之外的任何其他操作,直到用户更改密码。
以下是临时密码的功能:
  • 只有 cn=Directory Manager 帐户才能分配临时密码。
  • 目录服务器只允许身份验证尝试固定次数,以避免攻击者探测密码。
  • 目录服务器允许在指定延迟后尝试,以配置在设置后临时密码不可用。
  • 目录服务器只允许身份验证尝试指定时间,以便在用户不使用或重置它时临时密码过期。
  • 如果身份验证成功,Directory 服务器要求用户在服务器执行任何其他操作前重置密码。
默认情况下禁用临时密码规则。您可以在全局或本地密码策略中配置它们。

20.5.1. 在全局密码策略中启用临时密码策略

为整个目录服务器实例启用临时密码功能:
  1. 如果管理员重置密码,则启用该用户的密码。
  2. 在全局密码策略中配置该功能。
如果管理员更新了一个用户的 userPassword 属性,并将 passwordMustChange 属性设置为 on,目录服务器会应用临时密码规则。

流程

  1. 配置用户在管理员重置后必须更改密码:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com  pwpolicy set --pwdmustchange on
  2. 在全局密码策略中配置临时密码策略设置:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwptprmaxuse 5 --pwptprdelayexpireat 3600 --pwptprdelayvalidfrom 60
    在本例中:
    • --pwptprmaxuse 选项将用户可以使用临时密码的最大尝试次数设置为 5
    • --pwptprdelayexpireat 选项将临时密码到期前的时间设置为 3600 秒(1 小时)
    • --pwptprdelayvalidfrom 选项配置 --pwptprdelayexpireat 中设置的时间在管理员重置用户密码后启动 60 秒。

验证

  • 显示存储临时密码规则的属性:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy get | grep -i TPR
    passwordTPRMaxUse: 5
    passwordTPRDelayExpireAt: 3600
    passwordTPRDelayValidFrom: 60

20.5.2. 在本地密码策略中启用临时密码策略

要为特定用户或子树启用临时密码功能,如果管理员重置密码,用户必须更改密码,并在本地密码策略中配置该功能。
如果管理员更新了一个用户的 userPassword 属性,并将 passwordMustChange 属性设置为 on,目录服务器会应用临时密码规则,如果用户:
  • 启用本地密码策略
  • 存储在启用了本地密码策略的子树中

流程

  1. 配置用户在管理员重置后必须更改密码:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com  pwpolicy set --pwdmustchange on
  2. 配置临时密码规则设置:
    • 对于子树:
      # dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp addsubtree --pwptprmaxuse 5 --pwptprdelayexpireat 3600 --pwptprdelayvalidfrom 60 ou=People,dc=example,dc=com
    • 对于用户:
      # dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp adduser --pwptprmaxuse 5 --pwptprdelayexpireat 3600 --pwptprdelayvalidfrom 60 uid=example,ou=People,dc=example,dc=com
    请注意,您只能对存在的条目设置本地密码策略。
    在这些示例中:
    • --pwptprmaxuse 选项将用户可以使用临时密码的最大尝试次数设置为 5
    • --pwptprdelayexpireat 选项将临时密码过期前的时间设置为 3600 秒(1 小时)。
    • -pwptprdelayvalidfrom 选项配置 --pwptprdelayexpireat 中设置的时间在管理员重置用户密码后启动 60 秒。

验证

  • 显示可分辨名称(DN)的本地密码策略:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp get distinguished_name | grep -i TPR
    passwordTPRMaxUse: 5
    passwordTPRDelayExpireAt: 3600
    passwordTPRDelayValidFrom: 60