我正在使用openldap 2.4。我已经配置了以下配置。
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/HFSchema.schema
include /etc/ldap/schema/ppolicy.schema
pidfile /var/run/slapd/slapd.pid
modulepath /usr/lib/ldap
moduleload back_hdb.la
moduleload ppolicy.la
database hdb
suffix "dc=example,dc=com"
rootdn "cn=admin,dc=example,dc=com"
rootpw {SSHA}xzW0DfNFHahvm/C68ZR4YvbZGFQJjfz5
overlay ppolicy
ppolicy_default "cn=DefaultPwdPolicy,ou=Policies,dc=example,dc=com"
ppolicy_use_lockout
ppolicy_hash_cleartext
我还添加了默认密码策略
# DefaultPwdPolicy, Policies, example.com
dn: cn=DefaultPwdPolicy,ou=Policies,dc=example,dc=com
cn: DefaultPwdPolicy
pwdAttribute: 2.5.4.35
objectClass: pwdPolicy
objectClass: top
objectClass: device
pwdAllowUserChange: TRUE
pwdMaxAge: 7776000
pwdInHistory: 5
pwdCheckQuality: 2
pwdMinLength: 8
pwdExpireWarning: 432000
pwdLockoutDuration: 900
pwdMaxFailure: 3
pwdMustChange: TRUE
pwdSafeModify: TRUE
pwdLockout: TRUE
但是,管理员仍然可以在没有这些限制的情况下创建用户。我如何确认我的ppolicy叠加层是否正常工作?如何测试是否实际应用了这些约束。?
答案 0 :(得分:2)
唯一没有密码策略限制的用户是内部rootdn
用户。你不应该自己使用任何东西。 slapd
本身用来更新DIT的用户。您应该使用必要的权限定义另一个管理员用户,在DIT中,。使用rootdn
用户执行admin任务将绕过man已知的每个约束。
要完全使用ppolicy
,您必须使用密码策略请求控制并检查代码中的相应响应控件,以便发现即将到期,宽限期等。
答案 1 :(得分:0)
您可以使用ldap *命令(OpenLDAP LDAP客户端)测试密码策略,该命令允许使用LDAP控件。
您必须知道有效的DN和密码(不是rootdn,它会覆盖密码策略)。
例如:
clement@ader-xps:~$ ldapwhoami -x -H ldap://localhost -D uid=coudot,ou=users,dc=example,dc=com -W -e ppolicy
Enter LDAP Password:
ldap_bind: Invalid credentials (49); Account locked