最近要用java来修改windows 2003的Active Directory(简称AD)上的用户,包括新增、修改、删除,普通的操作这里就不说了,网上有一大堆的资料,这里记述一下本人操作过程中遇到的问题及解决方法。
通过ldap来修改AD的用户信息,除了修改密码外,其他的都可以使用非安全的连接进行操作,也就是可以不走SSL连接来操作,注意AD的普通端口是389,SSL端口是636。
当使用SSL连接修改密码时,需要在连接端安装证书,怎么获取证书,本人使用网上其他人介绍的证书方法,全是无法成功,都是出现 unable to find valid certification path to requested target 错误,最终经一朋友提示,使用其他方法获取到正确的证书,具体如下:
1、安装证书服务。在ldap服务器上安装证书服务。证书服务的安装没什么特别的注意,请参考其他人的文章。
2、获取客户端证书。别人都是通过下载证书的方式来获取证书,但是我通过这种方式就是无法成功修改密码,也都是提示 unable to find valid certification path to requested target 这个错误。我的操作方法为,用IE通过SSL直接连接ldap服务器(也就是安装AD的那台机器),使用636端口,类似于 https://192.168.0.111:636 ,连接的时候会提示安装证书,这时候把这个证书保存下来,即为需要的客户端证书。
3、连接。得到证书后,我在连接的时候成功了,但在修改AD用户密码的时候还是报错,但这次的错误为 javax.naming.OperationNotSupportedException: [LDAP: error code 53 - 0000052D: SvcErr: DSID-031A0FC0, problem 5003 (WILL_NOT_PERFORM), data 0 ,操作不支持错误,在这个问题了转了好久都没解决,后来无意中看到一篇文章讲到AD中的密码策略问题,才想起来windows2003中AD中的默认密码策略有长度限制和复杂性要求,所以才导致出现OperationNotSupportedException异常,记得在域控制器上查看自己的域策略。
后记:由于水平原因,就因为证书的问题搞了两天多才搞定,其实通过调整域策略可以使用修改密码不需要走SSL通道的,但这都是旁门左道,希望写下这篇文章对大家有所帮助。
分享到:
相关推荐
java使用ldap修改ad域用户密码
java使用ldap修改ad域用户密码收集.pdf
java使用ldap修改ad域用户密码.pdf
JAVA ldap AD 域 免证书 查询 修改 删除 新增 启用 禁用 修改密码
java使用ldap修改ad域中的用户密码
java JNDI方式修改AD域密码 免ssl验证方式修改AD域密码 LDAP SSL 证书 javassl 很实用的一段代码,免去了复杂的证书操作过程。
配合本人AD域证书导入的配置博客,本代码为AD域用户插入和密码修改
主要介绍了JAVA使用Ldap操作AD域的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
JAVA中使用LDAP进行用户认证,可靠、可用、可复制
LDAP实现AD域账号验证
JAVA通过LDAP+SSL(证书)实现用户和组织(部门)增删改查(Java代码部分),里面包含源码和文档,以便大家测试。
修改ldap密码源代码 change_ldap_pwd.zip
Springboot-LDAP针对AD域控做用户和组织进行同步
java操作ldap类java操作ldap类java操作ldap类
java操作Ldap,支持建立开启状态的用户,支持修改密码,放入eclipse测试即用,彻底操作AD域用户,有不明白的可以联系我
java操作ldap修改ad密码,新增ad账号,一个较为简单的demo,供大家学习参考。
java连接LDAP实例和jar包,里面包含ssl连接和更改LDAP属性的例子,公参考
世上最全通过利用JAVA新建、修改、删除AD用户、添加至组及更新密码,包括证书服务器的配置、JAVA证书导...
JAVA中使用LDAP进行用户认证 详细的JAVA代码
用JAVA实现LDAP的访问.txt 用JAVA实现LDAP的访问.txt