3.5. 配置密码策略
密码策略通过强制执行一定级别的安全性,最大程度降低使用密码的风险。例如,您可以定义一个密码策略以确保:
- 用户必须根据计划更改其密码
- 用户必须提供非缓解密码
- 密码语法必须满足某些复杂性要求
3.5.1. 密码策略如何工作 复制链接链接已复制到粘贴板!
目录服务器支持细粒度密码策略,这些策略在特定的 pyramid 中工作。全局密码策略由子树级密码策略取代,该策略由用户级密码策略取代。
您可以定义:
- 全局密码策略,应用到整个目录
本地密码策略
- 应用到特定子树的子树级别策略
- 用户级策略,应用到特定用户
密码策略没有添加:只有一个密码策略适用于条目。例如,当您在全局或子树级别密码策略中配置特定属性时,但没有在用户级密码策略中配置特定属性,此属性不会应用到用户。在这种情况下,当用户尝试登录时,只有用户级策略处于活跃状态。
当使用密码管理员帐户或 Directory Manager (root DN)设置密码时,您将绕过密码策略。不要将这些帐户用于常规用户密码管理。使用它们仅执行需要绕过密码策略的密码管理任务,如添加预哈希密码,或者有意覆盖当前密码限制,以便在重置后设置临时密码。
应用到用户帐户的完整密码策略由以下元素组成:
- 密码策略检查的类型或级别。此信息指示服务器是否应该检查并强制执行全局密码策略或本地密码策略。
- 密码添加和修改信息。密码信息包括密码语法和密码历史记录详细信息。
- 绑定信息。绑定信息包括允许的宽限期、密码过期属性和跟踪绑定失败的数量。
建立密码策略后,您可以通过配置帐户锁定策略来保护用户密码免受潜在的威胁。帐户锁定通过重复猜测用户密码来防止尝试破坏该目录。
3.5.2. 使用命令行配置全局密码策略 复制链接链接已复制到粘贴板!
默认情况下禁用全局密码策略设置。您可以使用 dsconf
命令行工具配置全局密码策略。
流程
显示当前设置:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 调整密码策略设置。如需可用设置的完整列表,请输入:
dsconf <instance_name> pwpolicy set --help
# dsconf <instance_name> pwpolicy set --help
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如,要启用密码语法检查并将密码的最小长度设置为
12
个字符,请输入:dsconf <instance_name> pwpolicy set --pwdchecksyntax on --pwdmintokenlen 12
# dsconf <instance_name> pwpolicy set --pwdchecksyntax on --pwdmintokenlen 12
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为密码策略启用帐户锁定功能:
dsconf <instance_name> pwpolicy set --pwdlockout on
# dsconf <instance_name> pwpolicy set --pwdlockout on
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
后续步骤
- 配置帐户锁定策略,通过重复猜测用户密码来防止尝试破坏该目录。详情请参阅 配置帐户锁定策略。
3.5.3. 使用 Web 控制台配置全局密码策略 复制链接链接已复制到粘贴板!
默认情况下禁用全局密码策略设置。您可以使用 Web 控制台配置全局密码策略。
前提条件
- 在 web 控制台中登录到实例。
流程
-
打开
菜单。 设置全局密码策略设置。您可以在以下类别中设置参数:
- 常规设置,如密码存储方案
- 密码过期设置,如密码过期的时间
- 帐户锁定设置,比如在应锁定帐户的登录尝试的次数后
密码语法设置,如最小密码长度
要显示参数的
cn=config
条目中的工具提示和对应的属性名称,请将鼠标光标悬停在设置上。
- 点 。
后续步骤
- 配置帐户锁定策略,通过重复猜测用户密码来防止尝试破坏该目录。详情请参阅 配置帐户锁定策略。
3.5.4. 本地密码策略条目 复制链接链接已复制到粘贴板!
当您使用 dsconf localpwp addsubtree
或 dsconf localpwp adduser
命令时,Directory 服务器会自动创建用于存储本地密码策略属性的条目。
对于子树,添加了以下条目:
条目名称 | 描述 | 内容 |
---|---|---|
| 子树级别的容器条目 | 子树及其所有子项的各种与密码策略相关的条目 |
| 实际的密码策略规格条目 | 所有特定于子树的密码策略属性 |
| CoS 模板条目 |
|
| 子树级别的 CoS 定义条目 | COS 定义条目 |
例 3.1. 子树 ou=people,dc=example,dc=com 的 nsPwPolicyContainer 条目
dn: cn=nsPwPolicyContainer,ou=people,dc=example,dc=com objectClass: top objectClass: nsContainer cn: nsPwPolicyContainer
dn: cn=nsPwPolicyContainer,ou=people,dc=example,dc=com
objectClass: top
objectClass: nsContainer
cn: nsPwPolicyContainer
例 3.2. 子树 ou=people,dc=example,dc=com 的 nsPwPolicyEntry 条目
例 3.3. 子树 ou=people,dc=example,dc=com 的 nsPwTemplateEntry 条目
例 3.4. 子树 ou=people,dc=example,dc=com 的 CoS 规格条目
对于用户,添加了以下条目:
条目名称 | 描述 | 内容 |
---|---|---|
| 父级别的容器条目 | 用户及其所有子级的各种密码策略相关条目 |
| 实际的密码策略规格条目 | 所有特定于用户的密码策略属性 |
例 3.5. 用户 uid=user_name,ou=people,dc=example,dc=com 的 nsPwPolicyContainer 条目
dn: cn=nsPwPolicyContainer,ou=people,dc=example,dc=com objectClass: top objectClass: nsContainer cn: nsPwPolicyContainer
dn: cn=nsPwPolicyContainer,ou=people,dc=example,dc=com
objectClass: top
objectClass: nsContainer
cn: nsPwPolicyContainer
例 3.6. The nsPwPolicyEntry entry for a user uid=user_name,ou=people,dc=example,dc=com
3.5.5. 使用命令行配置本地密码策略 复制链接链接已复制到粘贴板!
与定义整个目录的设置的全局密码策略不同,本地密码策略是特定用户或子树的策略。目前,您只能使用命令行设置本地密码策略。
前提条件
- 要为创建策略的用户或子树条目已存在于目录中。
流程
验证子树或用户条目的本地密码策略是否已存在。例如:
dsconf <instance_name> localpwp get "ou=People,dc=example,dc=com"
# dsconf <instance_name> localpwp get "ou=People,dc=example,dc=com" Enter password for cn=Directory Manager on ldap://server.example.com: Error: No password policy was found for this entry
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果没有本地策略,请创建一个:
创建 子树 密码策略:
dsconf <instance_name> localpwp addsubtree "ou=People,dc=example,dc=com"
# dsconf <instance_name> localpwp addsubtree "ou=People,dc=example,dc=com"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建用户 密码策略:
dsconf <instance_name> localpwp adduser "uid=user_name,ou=People,dc=example,dc=com"
# dsconf <instance_name> localpwp adduser "uid=user_name,ou=People,dc=example,dc=com"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
设置本地策略属性。如需可用设置的完整列表,请输入:
dsconf <instance_name> localpwp set --help
# dsconf <instance_name> localpwp set --help
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如,要启用密码过期并将最长密码期限设置为 14 天(
1209600
秒):在 子树 密码策略中:
dsconf <instance_name> localpwp set --pwdexpire on --pwdmaxage 1209600 "ou=People,dc=example,dc=com"
# dsconf <instance_name> localpwp set --pwdexpire on --pwdmaxage 1209600 "ou=People,dc=example,dc=com"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 用户密码 策略中:
dsconf <instance_name> localpwp set --pwdexpire on --pwdmaxage 1209600 "uid=user_name,ou=People,dc=example,dc=com"
# dsconf <instance_name> localpwp set --pwdexpire on --pwdmaxage 1209600 "uid=user_name,ou=People,dc=example,dc=com"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.5.6. 使用命令行禁用本地密码策略 复制链接链接已复制到粘贴板!
当您创建新的本地策略时,cn=config
条目中的 nsslapd-pwpolicy-local
参数会在 上
自动设置为。如果没有启用本地密码策略,您可以使用命令行手动禁用它。
流程
禁用所有本地策略或删除特定的本地策略:
禁用所有本地密码策略:
dsconf <instance_name> pwpolicy set --pwdlocal off
# dsconf <instance_name> pwpolicy set --pwdlocal off
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除单个现有的 子树 密码策略:
dsconf <instance_name> localpwp remove "ou=People,dc=example,dc=com"
# dsconf <instance_name> localpwp remove "ou=People,dc=example,dc=com"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除单个 现有用户 密码策略:
dsconf <instance_name> localpwp remove "uid=user_name,ou=People,dc=example,dc=com"
# dsconf <instance_name> localpwp remove "uid=user_name,ou=People,dc=example,dc=com"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.5.7. 跟踪密码更改时间 复制链接链接已复制到粘贴板!
密码更改操作是条目的典型修改操作,Directory 服务器会将更新时间记录到 lastModified
操作属性。但是,为了便于更新 Active Directory 同步中的密码或与其他 LDAP 客户端连接,您可以单独记录最后一次密码更改的时间。
在全局或本地密码策略中配置 passwordTrackUpdateTime
参数,以将上次密码更改的时间记录到用户条目的 pwdUpdateTime
操作属性。
前提条件
-
您有
root
权限。
流程
在
上将
passwordTrackUpdateTime
参数设置为 :对于全局策略,请运行:
dsconf <instance_name> pwpolicy set --pwdtrack on
# dsconf <instance_name> pwpolicy set --pwdtrack on
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于子树或用户级策略,请运行:
dsconf <instance_name> localpwp set "ou=people,dc=example,dc=com" --pwdtrack on
# dsconf <instance_name> localpwp set "ou=people,dc=example,dc=com" --pwdtrack on
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
显示策略的当前设置:
对于全局策略,请运行:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于子树或用户级策略,请运行:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow