OpenLDAP 上的 SSHA 密码加密

SSHA password encryption on OpenLDAP

我目前的问题是我无法阻止 OpenLDAP 将密码存储为纯文本。在较旧的 openLDAP 版本中,我在 slapd.conf

中输入了以下配置
ppolicy_hash_cleartext
password-hash {SSHA} {SHA} 

因此,一旦我的应用程序以明文形式发送了密码,ldap 就会对其进行加密并加密存储。

不幸的是我无法配置 OpenLDAP 2.4.40。我发现 slapd.conf 在较新版本中不再存在,而是在 cn=config.ldif 文件中进行配置。

我尝试在那里再次添加相同的配置,但似乎没有效果。

EDIT :我在 olcBackend={0}mdb.ldif 中添加了 ldapmodify olcPasswordHash: {SSHA} 条目, olcDatabase={1}mdb.ldif , olcDatabase={0}config.ldif 和 cn=config.ldif ,仍然以明文形式发送的我的密码存储为明文。

花了一些时间,但终于想通了。

加载描述 ppolicy 属性的架构。

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/ppolicy.ldif

创建一个包含以下内容的 ppolicy_module.ldif 并确保 ppolicy.la 位于定义的 olcModulePath 下。将文件存储在 /etc/ldap

dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModuleLoad: ppolicy.la
olcModulePath: /usr/lib/ldap

添加ppolicy_module.ldif

ldapadd -Y EXTERNAL -H ldapi:/// -f ppolicy_module.ldif

创建一个包含以下内容的 ppolicy-overlay.ldif 文件。确保 olcDatabase 编号。在这种情况下,它是 olcDatabase={1}mdb 。将文件存储在 /etc/ldap

dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config
objectClass: olcPPolicyConfig
olcOverlay: ppolicy
olcPPolicyDefault: cn=ppolicy,ou=policies,dc=example,dc=com
olcPPolicyUseLockout: FALSE
olcPPolicyHashCleartext: TRUE

添加 LDIF 文件。

ldapadd -Y EXTERNAL -H ldapi:/// -f ./ppolicy-overlay.ldif

重新启动 ldap。

更多详情请见: https://fedorahosted.org/sssd/wiki/openldap_ppolicy