我正在使用LDAP3模块从Active Directory中查询信息。要获取像GMSA密码blob这样的信息(ManagedPassword属性),则ActiveDirectory期望任一连接都是安全的(LDAPS)或**LDAP签名(完整性)**被使用。我遇到了一个环境没有安装LDAPS证书的情况,安装的可能性被排除了。所以我剩下的唯一选择就是使用LDAP签名。任何人都有一个想法,如何使用LDAP签名,同时连接到活动目录超过389无论是与LDAP3模块或其他一些?
我正在使用LDAP3模块从Active Directory中查询信息。要获取像GMSA密码blob这样的信息(ManagedPassword属性),则ActiveDirectory期望任一连接都是安全的(LDAPS)或**LDAP签名(完整性)**被使用。我遇到了一个环境没有安装LDAPS证书的情况,安装的可能性被排除了。所以我剩下的唯一选择就是使用LDAP签名。任何人都有一个想法,如何使用LDAP签名,同时连接到活动目录超过389无论是与LDAP3模块或其他一些?
1条答案
按热度按时间fjaof16o1#
TLS有两个方面(LDAPS中的S):
1.服务器信任客户端
1.客户端信任服务器
这与LDAP无关,但与TLS有关,与HTTPS使用的TLS相同,所以在回答你的问题之前,我将使用HTTPS。
1.服务端信任客户端
大多数情况下,服务器无法信任客户端。想象一下,如果您每次访问新的https网页时都必须建立信任关系!那么服务器几乎从未配置为信任其客户端。即使您的LDAP服务器处于更好的位置来信任其客户端(例如,它可以保存他们的证书),它通常不是这样配置的。当它是,我们称之为双向TLS或双向TLS。
在建立了单边TLS连接之后,信任将通过使用密码或Kerberos票证在安全连接上进行身份验证来实现。所以这里没有什么可担心的。
2.客户端信任服务端
一些服务器配置了错误的TLS。这里是一个test server that uses a certificate that your browser (or operating system) does not trust。
但是,如果您单击“高级”并继续访问该网站(在Chrome,ymmv中),则会向您显示内容(一个大的红色页面),因为您决定通过忽略/接受不受信任的证书来“信任”该网站。
当然,如果你不能信任服务器的证书,有可能你正在发送你的凭据到一个流氓服务器。这可能是不太可能的,所以我会让处理这种可能性,并回答你的问题。
无证书连接LDAPS
只需指示LDAPS库跳过证书验证并继续,就像您在该测试页面上手动执行的操作一样。
对于python-ldap,在调用
ldap.initialize
之前添加以下内容:或ldap 3,然后再创建服务器: