我在CentoS 6.9上使用openldap slapd 2.4.40和postgresql9.2.23作为back-sql
LDAP false
Uncaught TypeError: second.hello is not a function
at main.js:13
和uid
的用户和密码通过DES编码存储在postgresql中。
原始明文是userPassword
DES编码/加密的文本为JacicFk5
,存储在数据库中。
通过存储的密码,我可以看到ldapseach的用户信息。
IfjFxsltK/MPE
但是,我无法通过原始明文密码进行ldapsearch
ldapsearch -x -b "dc=example,dc=com" -D uid="HDZZZ0R0N,ou=people,dc=example,dc=com" -w IfjFxsltK/MPE '(&(uid= HDZZZ0R0N)(objectClass=*))'
# extended LDIF
#
# LDAPv3
# base <dc=example,dc=com> with scope subtree
# filter: (&(uid= HDZZZ0R0N)(objectClass=*))
# requesting: ALL
#
# user01, people, example.com
dn: uid= HDZZZ0R0N,ou=people,dc=example,dc=com
objectClass: inetOrgPerson
cn:: W+aOkl3lia/nlKPnianjg6Hjg7Pjg4bjg4rjg7PjgrnvvIgzNu+8iVNURw==
sn:: W+aOkl3lia/nlKPnianjg6Hjg7Pjg4bjg4rjg7PjgrnvvIgzNu+8iVNURw==
uid: HDZZZ0R0N
userPassword:: SWZqRnhzbHRLL01QRQ==
有人告诉我如何使ldapsearch通过明文解析给定密码并通过DES编码存储密码吗?
我想知道如何从ldapseach命令行制作纯文本ldapsearch -x -b "dc=example,dc=com" -D uid="HDZZZ0R0N,ou=people,dc=example,dc=com" -w JacicFk5 '(&(uid= HDZZZ0R0N)(objectClass=*))'
ldap_bind: Invalid credentials (49)
到哈希JacicFk5
并使其与数据库中的IfjFxsltK/MPE
匹配为IfjFxsltK/MPE
。
是否有适用于userPassowrd
或ldap.conf
的指令?
我已经检查了以下内容。
slapd.conf
它返回echo "SWZqRnhzbHRLL01QRQ==" |perl -MMIME::Base64 -ne 'print decode_base64($_) . "\n"'
IfjFxsltK/MPE
它返回perl -e 'print("userPassword: {crypt}".crypt("JacicFk5","If")."\n");'
更多信息。 我的ldapseach可以通过ownclod为存储在AD服务器中的用户解析密码文本。
答案 0 :(得分:1)
您想要/需要的是LDAP 简单身份验证。首先请注意,以明文形式存储密码不安全!
首先,您需要测试支持/允许的身份验证机制。
一个例子:
tukanos@localhost:~# ldapsearch -H ldap:// -x -LLL -s base -b "" supportedSASLMechanisms
dn:
supportedSASLMechanisms: DIGEST-MD5
supportedSASLMechanisms: CRAM-MD5
supportedSASLMechanisms: NTLM
现在,您要通过ldapmodify
更改配置。准备带有配置的LDIF文件(LDIF表示LDAP数据可互换格式)。
准备配置文件,您可以将其命名为olcSaslSecProps.ldif
:
dn: cn=config
replace: olcSaslSecProps
olcSaslSecProps: noanonymous,minssf=0,passcred
属性的含义:
noanonymous ... no anonymous connection allowed
minssf=0 ... that defines your effective encryption strength (0 ... no encryption)
passcred ... that would allow password to work as for credentials
引用OpenLDAP security considerations
安全强度因素
服务器使用安全强度因子(SSF)来指示 相对保护强度。 SSF为零(0)表示否 保护措施到位。 SSF为一(1)表示完整性 保护到位。 SSF大约大于(1) 与有效加密密钥长度相关。例如,DES是 56、3DES是112,AES是128、192或256。
许多管理控制依赖与TLS相关的SSF 并在LDAP会话上提供了SASL保护。
在采取适当的保护措施后,安全控制措施禁止操作 不到位。例如:
security ssf=1 update_ssf=112
要求对所有操作和加密进行完整性保护 保护,相当于3DES,用于更新操作(例如,添加,删除, 修改等)。有关详细信息,请参见slapd.conf(5)。
现在要应用LDIF文件:
ldapmodify -Y EXTERNAL -H ldapi:// -f ./olcSaslSecProps.ldif
现在重新启动slapd
守护程序:
systemctl restart slapd
如果现在检查配置,您将获得LOGIN
和PLAIN
:
ldapsearch -H ldap:// -x -LLL -s base -b "" supportedSASLMechanisms
dn:
supportedSASLMechanisms: PLAIN
supportedSASLMechanisms: LOGIN
现在您的搜索应该使用普通的测试密码:
ldapsearch -x -b "dc=example,dc=com" -D uid="HDZZZ0R0N,ou=people,dc=example,dc=com" -w JacicFk5 '(&(uid= HDZZZ0R0N)(objectClass=*))'