一、在执行导入同步到设备本地时,同时在设备webconsole界面进行抓包,命令如下 tcpdump -i ethx(访问LDAP服务器的路由网口) host xx.xx.xx.xx(ldap服务器地址) -nn -s0 -w,将数据包保存到本地进行分析。
二、分析抓取的数据包,检查数据包中的过滤条件,以及查询LDAP服务器中的用户、组织架构、群组等信息是否有正常返回。具体分析内容,看截图:
如果数据包没有正常搜索到用户跟组织架构(数据包返回0 results),可能是由于ldap服务器提供的管理员权限不够,或者第二步的参数配置还是有问题。此时建议让客户提供ldap的超管账号进行测试验证。
三、如果在抓包的过程中已经抓取到有返回用户、组织架构、群组等数据结果,但是用户目录还是没有同步成功,可以检查一下是否从同步导入开始一直到结束,整个数据包中返回的用户数据读取超过了60s。如果超过了,也会导致导入失败。此时需要反馈研发调整超时时间,或者检查一下设备与ldap服务器之间是否网络环境存在延迟高的情况。
四、如果导入不全或者出现只导入了组织架构,没导入用户,我们需要检查一下是不是ldap服务器返回来的DN路径大小写不统一,这种情况也会导致用户导入失败。如图:
此时需要让客户调整LDAP服务器将用户跟用户组的OU大小写保持一致。
五、可能LDAP服务器不支持分页查询导致用户导入失败,类似案例请参考:
LDAP服务器不支持分页导致用户导入失败
六、如果确认设备发出的请求参数,以及ldap服务器的返回都没有异常,但是设备上还是存在部分用户无法导入的情况,需要清理一下设备的脏数据,避免是脏数据干扰导致用户导入不全。具体操作步骤如下:
①使用admin账号登录设备后台
②#首先获取用户目录的id:执行如下命令
atrust_tool access_db mysql sdp -Nse "select id from user_directory where name = '用户目录名称'"
#然后执行如下命令
for table in {"mirror_user","mirror_user_group","mirror_user_band","mirror_user_to_band"}; do atrust_tool access_db mysql sdp -Nse "delete from $table where user_directory_id='用户目录id'"; done
③操作完成之后再执行导入看是否正常