20.5. 配置临时密码规则
目录服务器密码策略支持在用户帐户中设置临时密码。如果您为用户分配临时密码,Directory 服务器会拒绝除密码更改之外的任何其他操作,直到用户更改密码。
以下是临时密码的功能:
- 只有
cn=Directory Manager
帐户才能分配临时密码。 - 目录服务器只允许身份验证尝试固定次数,以避免攻击者探测密码。
- 目录服务器允许在指定延迟后尝试,以配置在设置后临时密码不可用。
- 目录服务器只允许身份验证尝试指定时间,以便在用户不使用或重置它时临时密码过期。
- 如果身份验证成功,Directory 服务器要求用户在服务器执行任何其他操作前重置密码。
默认情况下禁用临时密码规则。您可以在全局或本地密码策略中配置它们。
20.5.1. 在全局密码策略中启用临时密码策略
为整个目录服务器实例启用临时密码功能:
- 如果管理员重置密码,则启用该用户的密码。
- 在全局密码策略中配置该功能。
如果管理员更新了一个用户的
userPassword
属性,并将 passwordMustChange
属性设置为 on,目录服务器会应用临时密码规则。
流程
- 配置用户在管理员重置后必须更改密码:
# dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwdmustchange on
- 在全局密码策略中配置临时密码策略设置:
# 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,目录服务器会应用临时密码规则,如果用户:
- 启用本地密码策略
- 存储在启用了本地密码策略的子树中
流程
- 配置用户在管理员重置后必须更改密码:
# dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwdmustchange on
- 配置临时密码规则设置:
- 对于子树:
# 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