如何让ldappasswd在openldap中使用{SHA}代替{SSHA}用户密码?

时间:2014-07-14 17:52:37

标签: passwords openldap sha

是否可以将{SHA}与ldappasswd一起使用?我在手册页和文档中找不到负责任的选项

2 个答案:

答案 0 :(得分:1)

password-hash中查找slapd.conf(5),或在olcPasswordHash中查找slapd-config(5)

答案 1 :(得分:0)

我知道这是一个旧帖子,但我找到了解决此问题的另一种方法。

此wolution适用于 ApacheDirectory服务器(对于org.apache实现类,但我认为您可以为每个openldap找到拦截器)。

如果您在使用ldappasswd时默认使用 SHA 加密,则可以更改密码的拦截器实现。

您必须修改以下dn条目:

ads-interceptorId=passwordHashingInterceptor,ou=interceptors,ads-directoryServiceId=default,ou=config

并更改值: ads-interceptorclassname: arg.apache.directory.server.core.hash.ShaPasswordHashingInterceptor

默认情况下,openldap正在使用:

ads-interceptorclassname: org.apache.directory.server.core.hash.SshaPasswordHashingInterceptor

要修改的命令:

ldapmodify -h <LDAP_HOST> -p <LDAP_PORT> -D "<ADMIN_DN>" -w "<ADMIN_PASSWORD>" <<EOF
dn: ads-interceptorId=passwordHashingInterceptor,ou=interceptors,ads-directoryServiceId=default,ou=config
changetype: modify
replace: ads-interceptorclassname
ads-interceptorclassname: org.apache.directory.server.core.hash.ShaPasswordHashingInterceptor
EOF

然后您必须重新启动LDAP服务器。 ldappasswd添加的所有新密码都位于 SHA 中,而不是 SSHA

注意: 您可以使用Apache提供的另一个拦截器: http://directory.apache.org/apacheds/advanced-ug/1.4-interceptors.html#existing-interceptors 的Javadoc: https://directory.apache.org/apacheds/gen-docs/2.0.0-M20/apidocs/org/apache/directory/server/core/hash/package-tree.html