Microsoft Active Directory将在2020年3月进行更新,默认启用LDAP通道绑定和LDAP签名,请参阅https://support.microsoft.com/en-us/help/4520412/2020-ldap-channel-binding-and-ldap-signing-requirement-for-windows
当激活ldap通道绑定和LDAP签名以查询Active Directory中的数据时,Python LDAP模块是否仍然有效?
我需要修改什么吗?还是开箱即用?
我像这样连接到Active directory:
conn = ldap.initialize('url', bytes_mode=False)
conn.set_option(ldap.OPT_REFERRALS, 0)
conn.start_tls_s()
conn.simple_bind_s('username', 'password')更新后必须使用的Python和ldap模块的最低版本是多少?
提前谢谢。
发布于 2020-02-19 02:59:48
如果您使用的是简单绑定(就像您的代码示例中那样),那么在您的客户端中不需要进行任何更改。它将继续与LdapEnforceChannelBinding=2合作。
如果您将请求签名设为强制(LDAPServerIntegrity=2),那么如果没有ldaps或STARTLS,您将无法使用简单绑定(但您的示例代码似乎请求了STARTLS,因此它应该可以继续工作)。
但是,我还没有测试Pyton-ldap和SASL是否设置了绑定信息,如果您想使用GSSAPI/Kerberos或SASL/Digest-md5,它将是相关的。两者都不再适用于未修改的客户端(例如,Java sun-ldap JNDI提供程序无法使用)。
发布于 2020-02-28 22:11:49
我认为通道绑定不会影响LDAP简单TLS绑定( LDAPS )。通道签名是另一回事,但对于TLS也是可以的。
我所理解的是,通道绑定是用于CBT令牌的,并且是NTLMv2的SASL/NTLM的一部分,然后不是直接由LDAP实现,而是通过使用SASL实现。从github项目https://github.com/jborean93/ntlm-auth/blob/master/README.md中,我可以找到CBT,它被定义为从服务器证书派生的某个值,我猜它可能包含在RFC5929中,通道绑定令牌在第4章“tls- server -end-point”通道绑定类型中定义。
这与GSSAPI/Kerberos相同(请参阅https://github.com/requests/requests-kerberos/blob/master/requests_kerberos/kerberos_.py _get_channel_bindings_application_data )
不过,我没有看过SASL/Digest-md5 CBT。
https://stackoverflow.com/questions/59970805
复制相似问题