1、python使用ldap3连接AD的时候发生了下面的报错
raise LDAPOperationResult(result=result['result'], description=result['description'], dn=result['dn'], message=result['message'], response_type=result['type'])
ldap3.core.exceptions.LDAPInvalidCredentialsResult: LDAPInvalidCredentialsResult - 49 - invalidCredentials - None - 80090346: LdapErr: DSID-0C0906B7, comment: AcceptSecurityContext error, data 80090346, v4563 - bindResponse - None
里面使用389端口非加密的连接是正常,通过加密的636端口 也就是 ldaps连接域控会报错失败。
2、开始的排查思路是证书导致的,所以给域控申请的了证书,并且按照官网资料导入到服务的位置 https://learn.microsoft.com/en-us/troubleshoot/windows-server/identity/enable-ldap-over-ssl-3rd-certification-authority 但是发现ldp能正常连接
3、之后看到duo的文章 https://help.duo.com/s/article/3988?language=en_US 知道原因是因为之前系统加固,做了通道绑定导致的。 4、所以把这个注册表值删除,或者设置为0就可以了
HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/NTDS/Parameters/LdapEnforceChannelBinding
更改为0
(禁用)。
系统加固后是
HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services启用通道绑定验证/NTDS/Parameters/LdapEnforceChannelBinding
为 1
(启用)或 2
(启用,始终)。
5、设置完要立刻生效,写一个bat文件,写入下面内容,将explorer进程重启,就可以生效。
@echo off
taskkill /im explorer.exe /f
ping -n 2 127.0.0.1 > nul
start c:\windows\explorer.exe