java ad域修改密码_JAVA 操作 LDAP AD域修改密码报错及解决问题记录 simple bind failed:IP:PORT...
第一次接触ad域操作,搞了一天。终于完成。感谢以下博客主的知识分享。主要遇到的问题:simple bind failed:IP:PORTconnect reset 等。主要解决指导为:1. 修改AD的 init 方法初始化InitialLdapContext 时使用的账号密码,必须是AD域的管理员账号密码。如果不是管理员账号,会报53 的错。2. JAVA 修改AD密码必须是要用证书的。3. ..
第一次接触ad域操作,搞了一天。终于完成。感谢以下博客主的知识分享。
主要遇到的问题:
simple bind failed:IP:PORT
connect reset 等。
主要解决指导为:
1. 修改AD的 init 方法初始化 InitialLdapContext 时使用的账号密码,必须是AD域的管理员账号密码。
如果不是管理员账号,会报53 的错。
2. JAVA 修改AD密码必须是要用证书的。
3. 证书中的【颁发给/ 使用者】 必须是 AD域服务器那台机器的域名。如下第3点博客内容。
如果第二点不对,即使有证书,也是连不上ad服务器的, 报 connect reset 的错。或者
主要参考:
1. 测试登陆认证。
Java使用AD域认证用户_酱油能码丁-CSDN博客
2. 测试修改AD密码。
记一次java实现修改windows AD域的密码_lx318的博客-CSDN博客
AD域证书申请,导入Java密钥库,实现ldap修改AD用户密码_寒沨的博客-CSDN博客
3. Java采用SSL连接AD域连接出错问题simple bind failed:IP:PORT解决方案
4. 报错信息参考:
private static String getERR(Exception e) {
/*
*
* 根据ldap返回码判断错误原因并返回
*
*/
if (e.toString().indexOf("LDAP: error code") > 0) {
// 得到ldap返回的错误吗
String errorMsg = e.toString();
int startNum = errorMsg.toString().indexOf("LDAP: error code") + 17;
errorMsg = errorMsg.substring(startNum, startNum + 19);
int endNum = errorMsg.toString().indexOf(" - ");
errorMsg = errorMsg.substring(0, endNum);
if ("49".equals(errorMsg)) {
errorMsg = "域控管理员账户/密码错误";
} else if ("32".equals(errorMsg) || "34".equals(errorMsg)) {
errorMsg = "域内账户错误";
} else if ("10".equals(errorMsg)) {
errorMsg = "dc错误";
} else {
errorMsg = "修改失败,错误吗:" + errorMsg;
e.printStackTrace();
}
System.out.println("Problem resetting password(ldap):" + errorMsg);
return errorMsg;
} else {
if (e.toString().indexOf(
"algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext") > 0) {
System.out.println("Problem resetting password(ldap):" + "证书无效/证书密码错误");
return "修改失败,证书无效/证书密码错误";
}
if (e.toString().indexOf(
"the trustAnchors parameter must be non-empty") > 0) {
System.out.println("Problem resetting password(ldap):" + "证书不存在");
return "修改失败,证书不存在";
}
e.printStackTrace();
return "修改失败!";
}
}
5.
LDAP 中DN、CN、DC的含义
很多人虽然会使用dsadd等命令添加用户,但是dsadd的命令说明里面并没有涉及到dc,cn,ou的含义,很多人都不明白,这里是微软的技术支持人 员的回信,希望对大家有帮助。
CN, OU, DC 都是 LDAP 连接服务器的端字符串中的区别名称(DN, distinguished name)
LDAP连接服务器的连接字串格式为:ldap://servername/DN
其中DN有三个属性,分别是CN,OU,DC
LDAP是一种通讯协议,如同HTTP是一种协议一样的!
在 LDAP 目录中,
DC (Domain Component)
CN (Common Name)
OU (Organizational Unit)
LDAP 目录类似于文件系统目录。
下列目录:
DC=redmond,DC=wa,DC=microsoft,DC=com
如果我们类比文件系统的话,可被看作如下文件路径:
Com/Microsoft/Wa/Redmond
例如:CN=test,OU=developer,DC=domainname,DC=com
在上面的代码中 cn=test 可能代表一个用户名,ou=developer 代表一个 active directory 中的组织单位。这句话的含义可能就是说明 test 这个对象处在domainname.com 域的 developer 组织单元中
原文:https://www.cnblogs.com/java2sap/p/12174504.html
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)