最近要用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 域用户密码.pdf”和描述“java 使用 ldap 修改 ad 域用户密码.pdf”均指向了使用 Java 语言通过 LDAP 协议修改 Active Directory 域用户密码的主题。 二、标签 标签“技术”表明本...
通过以上介绍,我们可以了解到如何使用Java通过LDAP协议来验证Active Directory服务,并获取用户信息。这对于开发人员来说是非常有用的技术细节,可以帮助他们在实际项目中更好地实现用户认证和管理功能。
本文将深入探讨如何使用Java进行LDAP与AD的连接,并通过提供的源代码示例进行解析。 首先,让我们了解LDAP与AD的基本概念。LDAP是一种应用层协议,它使用TCP/IP来查找和检索分布式目录服务中的信息。这些信息可以...
本文档主要介绍了如何使用Java API进行AD账号的增删改操作,包括账号的创建、删除、修改密码等功能,并提供了详细的代码示例。 #### 二、活动目录(Active Directory)简介 活动目录是Windows Server的重要组成...
由于项目需要,学习ldap操作ad域,在此过程中发现网上资料千篇一律,而实现过程...本文是通过springldap连接和操作08ad域,增加用户,组织,安全组,修改和查询用户,移动用户,用户加入安全组等操作的完全代码及注释。
它允许用户通过单一登录(Single Sign-On, SSO)访问多个应用系统,简化了身份验证过程。Yale CAS Server是CAS协议的一个实现,而cas-java-client 3.2则是与CAS服务器进行交互的Java客户端库。 **1. Yale CAS ...
通过对Cognos权限设置的详细探讨,可以看出无论是使用NTLM还是Sun ONE LDAP作为第三方目录服务,都能够有效地实现用户管理和权限控制。每种方法都有其特点和适用场景,企业可以根据自己的实际需求和技术背景来选择最...
- **基础知识**:阐述WebLogic应用在集群环境下的运行原理和注意事项,包括数据一致性、会话管理等方面。 ### 安全管理 #### WebLogic与AD/LDAP集成 - **配置方法**:详细介绍如何在WebLogic中配置Active ...