`
wls981
  • 浏览: 139053 次
  • 性别: Icon_minigender_1
  • 来自: 桂林
社区版块
存档分类
最新评论

用JAVA通过LDAP修改AD用户密码注意事项

    博客分类:
  • java
阅读更多
    最近要用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通道的,但这都是旁门左道,希望写下这篇文章对大家有所帮助。
分享到:
评论
11 楼 sunjiankirk 2014-11-05  
博主,我已经解决这个问题了!
主要是userAccountControl这个属性值设置的问题(创建新用户时,如要设定密码,不能使用默认的ACCOUNTDISABLE+PASSWD_NOTREQD+NORMAL_ACCOUNT,只需要NORMAL_ACCOUNT即可),希望博主及时更新代码。
具体参见http://www.forumeasy.com/forums/thread.jsp?tid=134931028635&fid=ldapprof9&highlight=How+add+active+user+account+Active+Directory
10 楼 sunjiankirk 2014-11-04  
博主你好,首先非常感谢你的这篇文章。点出AD操作的关键点。
我现在是在windows 2008 r2上测试,发现,创建用户时,
如果直接设置unicodePwd属性,会出现错误:LDAP error code 16,有未识别的属性。
我看到其他人的代码,也提到需要先创建用户,再设置密码。

这个博主,有什么可以赐教的。
9 楼 乱世小雄 2014-05-16  
Leecupn 写道
楼主,我和三楼的情况是一样的,我获取证书并安装完成了之后,为什么还是报:
javax.naming.CommunicationException: simple bind failed: 192.168.136.202:636 [Root exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target]
异常呢??
怎样才能与好好你交流下?
期待回复,谢谢!

8 楼 jakejone 2012-12-04  
有帮助。谢谢啦
7 楼 qlong8807 2012-11-14  
能问一下,怎么安装证书服务吗?
6 楼 wls981 2009-09-02  
其实只要是AD中提供的对象,你都是可以修改的,group如果是AD提供的对象,那肯定也是可以修改的,修改方法应该跟用户类似。
5 楼 Leecupn 2009-08-21  
to wls981:
谢谢,问题我前几天已经解决了,确实是证书没导入。
请问一下,除了对用户编辑外,我可以对用户组,也就是group进行增、删操作吗?这是一个比较严峻的问题啊
期待回复。
4 楼 wls981 2009-08-19  
to Leecupn:

你证书正确的导入到JDK里了吗?连接的时候相应的证书路径是否指定正确呢?
3 楼 Leecupn 2009-08-17  
楼主,我获取证书并安装完成了之后,为什么还是报:
javax.naming.CommunicationException: simple bind failed: 192.168.136.202:636 [Root exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target]
异常呢??
怎样才能与好好你交流下?
期待回复,谢谢!
2 楼 wls981 2009-08-09  
具体的操作方法网上有很多代码你可以找找看,只要注意证书正确即可。
1 楼 zhangfeiii 2009-05-08  
我們公司B/S架構的系統,目前需要直接在界面上操作AD用戶信息(比如用戶帳號停用 / 用戶密碼Update等),請問能否詳細敘述下技術層面,謝謝!

相关推荐

    java使用ldap修改ad域用户密码.pdf

    标题“java 使用 ldap 修改 ad 域用户密码.pdf”和描述“java 使用 ldap 修改 ad 域用户密码.pdf”均指向了使用 Java 语言通过 LDAP 协议修改 Active Directory 域用户密码的主题。 二、标签 标签“技术”表明本...

    java通过LDAP验证Active Directory服务

    通过以上介绍,我们可以了解到如何使用Java通过LDAP协议来验证Active Directory服务,并获取用户信息。这对于开发人员来说是非常有用的技术细节,可以帮助他们在实际项目中更好地实现用户认证和管理功能。

    ldap 连接 AD

    本文将深入探讨如何使用Java进行LDAP与AD的连接,并通过提供的源代码示例进行解析。 首先,让我们了解LDAP与AD的基本概念。LDAP是一种应用层协议,它使用TCP/IP来查找和检索分布式目录服务中的信息。这些信息可以...

    java创建AD账号等

    本文档主要介绍了如何使用Java API进行AD账号的增删改操作,包括账号的创建、删除、修改密码等功能,并提供了详细的代码示例。 #### 二、活动目录(Active Directory)简介 活动目录是Windows Server的重要组成...

    springldaptest.java

    由于项目需要,学习ldap操作ad域,在此过程中发现网上资料千篇一律,而实现过程...本文是通过springldap连接和操作08ad域,增加用户,组织,安全组,修改和查询用户,移动用户,用户加入安全组等操作的完全代码及注释。

    Yale CAS Server的部署及cas-java-client 3.2的应用

    它允许用户通过单一登录(Single Sign-On, SSO)访问多个应用系统,简化了身份验证过程。Yale CAS Server是CAS协议的一个实现,而cas-java-client 3.2则是与CAS服务器进行交互的Java客户端库。 **1. Yale CAS ...

    cognos权限设置参考

    通过对Cognos权限设置的详细探讨,可以看出无论是使用NTLM还是Sun ONE LDAP作为第三方目录服务,都能够有效地实现用户管理和权限控制。每种方法都有其特点和适用场景,企业可以根据自己的实际需求和技术背景来选择最...

    BEA dev2dev WebLogic管理精华

    - **基础知识**:阐述WebLogic应用在集群环境下的运行原理和注意事项,包括数据一致性、会话管理等方面。 ### 安全管理 #### WebLogic与AD/LDAP集成 - **配置方法**:详细介绍如何在WebLogic中配置Active ...

Global site tag (gtag.js) - Google Analytics