问题:为什么我无法将对象类 pwdPolicy 添加到 cn=PasswordDefaults?
背景信息
我是 LDAP 新手,我正在网上浏览各种教程和其他提示,以便创建一个目录来处理用户信息。我正在尝试创建一个包含用户信息并强制执行密码策略的 LDAP 服务器。为了实现这一点,我认为我需要将 pwdPolicy 对象类添加到运行 2.4.40 的 LDAP 服务器的 ou=Policies 中。我大致遵循以下教程:
{
Password Policy tutorial: https://tobrunet.ch/articles/openldap-password-policy-overlay/,
Getting started with OpenLDAP and CentOS7: https://www.server-world.info/en/note?os=CentOS_7&p=openldap&f=1,
Default and User Specific Password Policy: http://www.zytrax.com/books/ldap/ch6/ppolicy.html
}
我有一个目录布局如下:
-> Root stuff
-> dc=example,dc=com
-> cn=Manager (The olcRootDN)
-> ou=User
-> *Several entries with objectClasses {posixAccount, shadowAccount, inetOrgPerson}*
-> ou=Policies (Not sure if this is here because not visible in Apache Directory Studio)
-> cn=passwordDefault
以下是我尝试使用该策略所做的操作。
步骤 1-3 大致遵循OpenLDAP 与 OLC部分OpenLDAP 密码策略覆盖
步骤1:使用以下命令将 ppolicy 模式加载到 OLC:
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/ppolicy.ldif
理解步骤 1:将 cn={5}ppolicy.ldif 添加到 /.../slap.d/cn=config/cn=schema
第2步:用以下命令加载模块:
ldapadd -D "cn=config" -W -f addPpolicyOverlay.ldif
addPpolicyOverlay.ldif 的内容
dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module{0}
olcModuleLoad: ppolicy.la
对步骤2的理解:将 cn=module{0}.ldif 添加到 /.../slapd.d/cn=config。
步骤3:使用以下命令配置 ppolicy 覆盖:
ldapadd -D "cn=config" -W -f configurePpolicyOverlay.ldif
configurePpolicyOverlay.ldif 的内容
dn: olcOverlay=ppolicy,olcDatabase={2}hdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcPPolicyConfig
olcOverlay: ppolicy
olcPPolicyDefault: cn=passwordDefault,ou=Policies,dc=example,dc=com
olcPPolicyHashCleartest: FALSE
olcPPolicyUseLockout: FALSE
olcPPolicyForwardUpdates: FALSE
对步骤 3 的理解:创建数据库并使用策略覆盖。在我的域 dc=example,dc=com 中创建 ou=Policies。我无法在 Apache Directory Studio 中探索 ou=Policies,尽管我相信它存在于 dc=example,dc=com 中
关于步骤 3 的问题:我现在是否有一个可行的默认密码策略?
步骤4:无法使用此命令将 pwdPolicy 对象类添加到 olcOverlay={0}ppolicy:
ldapmodify -a -D "cn=config" -W -f configureDefaultPpolicy.ldif
错误:ldapmodify: invalid format (line 5) entry: "olcOverlay={0}ppolicy,cn=olcDatabase={2}hdb,cn=config"
configureDefaultPpolicy.ldif 的内容
dn: olcOverlay={0}ppolicy,cn=oldDatabase={2}hdb,cn=config]
changetype: modify
olcObjectClasses: pwdPolicy
cn=passwordDefault,ou=Policies,dc=example,dc=com
pwdAttribute: userPassword
pwdAllowUserChange: TRUE
pwdInHistory: 50
pwdMaxFailure: 3
pwdMinLength: 8
关于步骤 4 的问题: https://i.stack.imgur.com/L8hqX.jpg (不够可信,无法嵌入图片:()
答案1
对步骤 3 的理解:创建数据库并使用策略覆盖。在我的域 dc=example,dc=com 中创建 ou=Policies。我无法在 Apache Directory Studio 中探索 ou=Policies,尽管我相信它存在于 dc=example,dc=com 中
它不会在数据库中创建任何东西dc=example,dc=com
,它只是为该数据库使用的策略覆盖设置一些配置。
关于步骤 3 的问题:我现在是否有一个可行的默认密码策略?
不,按照您的教程,您必须在数据库中创建这些分支dc=example,dc=com
才能放置 ppolicy:
它不是放在里面cn=config
而是放在数据库中dc=example,dc=com
dn: ou=Policies,dc=example,dc=com
ou: Policies
objectClass: organizationalUnit
dn: cn=passwordDefault,ou=Policies,dc=example,dc=com
objectClass: pwdPolicy
objectClass: person
objectClass: top
cn: passwordDefault
sn: passwordDefault
pwdAttribute: userPassword
pwdCheckQuality: 0
pwdMinAge: 0
pwdMaxAge: 0
pwdMinLength: 8
pwdInHistory: 5
pwdMaxFailure: 3
pwdFailureCountInterval: 0
pwdLockout: TRUE
pwdLockoutDuration: 0
pwdAllowUserChange: TRUE
pwdExpireWarning: 0
pwdGraceAuthNLimit: 0
pwdMustChange: FALSE
pwdSafeModify: FALSE
对于步骤 4 的问题,我无法看到我的专业代理后面的 imgur 图像,但您尝试将 ppolicy 导入 cn=config 的事实应该是主要问题。