很多网络通信都可以用SSL来加密的,LDAP也不列外,同样可以用SSL加密。
LDAPS使用的证书必须满足以下几个条件:
1.证书的增强性密钥用法中必须有服务器身份验证Server Authentication
2.证书的名称或者SAN名称中的第一个是域控的FQDN
3.服务器端有证书的私钥
4.证书被客户端信任
如果看不到图,请点我。
从客户端上测试一下基于LDAPS的Simple Binding,结果也是可以正常连接的。
注意,由于加入域的客户端会自动添加域后缀,所以对于非域客户端测试,请使用FQDN连接。可以看到之前的几次尝试连接失败,返回错误81。有的是因为没有使用FQDN,有的是因为没有将域控使用证书的根证添加到本地服务器的受信任根证书列表中。域中的客户端会自动将企业根证书加到本地的受信任根证书列表中,这一点可以不用担心。
有了SSL连接之后,另一个可以进一步加强安全性的就是通道绑定Channel Binding Token。通道绑定是指服务器端会检测客户端提供身份验证信息的通道,如果被检测到客户端是通过不同的通道提交验证信息,服务器会认为遭受到了凭据重放的公鸡(不是我写错了,是51CTO不允许),将这次认证视为无效的。更多信息可以参考RFC 5929
需要在服务器上添加注册表键值来启用。在以下位置HKLM\System\CurrentControlSet\Services\NTDS\Parameters添加REGDWORD 值LdapEnforceChannelBinding
0代表不要求通道绑定CBT
1代表如果客户端支持通道绑定则必须使用通道绑定完成身份验证。Windows 7以后的系统只需更新2017年7月的更新即可支持。如果客户端不支持通道绑定则不是强制的。
2代表所有客户端必须使用通道绑定完成身份验证,对于Windows客户端来说不会有什么问题。如果你有第三方调用LDAP验证的程序最好确认后再在域控上启用这个功能。
原文地址:https://blog.51cto.com/qiyuwei/2441584