1 注意:
1. LDAP 无法获取windows Active Directory 用户密码濑户朝香
2. 系统管理员可以修改其他用户的密码(不需要知道原来的旧密码),或者用户可以修改自己的密码(用户必须知道自己的密码)。这些密码修改操作必须通过一个安全通道来执行,象SSL、TLS、Kerberos。
3. Windows 2000 域控制器不支持TLS协议。但是Windows 2000 和 Windows Server 2003 域控制器都支持SSL。对基于SSL或TLS的会话,你的工作站(或指定的JRE)必须信任域控制器认证中心发布的CA证书。
相关资料可到www.ldapchina网站在看
具体步骤如下:
环境要求:
一台安装Active Directory 的服务器,域名为security.boco
莫文蔚丈夫一台安装证书服务(需安装企业根证书)的服务器,此服务器加入security域中
1. LDAP 无法获取windows Active Directory 用户密码濑户朝香
2. 系统管理员可以修改其他用户的密码(不需要知道原来的旧密码),或者用户可以修改自己的密码(用户必须知道自己的密码)。这些密码修改操作必须通过一个安全通道来执行,象SSL、TLS、Kerberos。
3. Windows 2000 域控制器不支持TLS协议。但是Windows 2000 和 Windows Server 2003 域控制器都支持SSL。对基于SSL或TLS的会话,你的工作站(或指定的JRE)必须信任域控制器认证中心发布的CA证书。
相关资料可到www.ldapchina网站在看
具体步骤如下:
环境要求:
一台安装Active Directory 的服务器,域名为security.boco
莫文蔚丈夫一台安装证书服务(需安装企业根证书)的服务器,此服务器加入security域中
一台安装JAVA应用的服务器,此服务器不需要加入security域中
安装步骤:
1 安装Active Directory 域控制器
2 安装证书服务
3 以域用户登录到安装了证书服务的服务器中,导出域根证书和计算机证书
第一步:进入MMC控制台,添加证书,选择本地计算机
安装步骤:
1 安装Active Directory 域控制器
2 安装证书服务
3 以域用户登录到安装了证书服务的服务器中,导出域根证书和计算机证书
第一步:进入MMC控制台,添加证书,选择本地计算机
d1.jpg
dc1.jpg
进入MMC 控制台
dm1.jpg
添加证书管理单元,选择本地计算机
个人- 第二步展开刚增加的证书节点,选择证书>证书,选择CA证书,导出
证书个人 第三步展开证书节点,选择证书 ,右击所有任务,申请新证书,证书类型选择计算机类型
xz.jpg
xz2.jpg
4 将从证书中导出的两个证书文件,*.cer 使用java的keytool工具创建或导入证书库文件中
导入CA证书
D:\Borland\jdk142_05\bin>keytool -import -keystore security51.keystore -file 51A
输入keystore密码: lwfmah
Owner: CN=securityCA, DC=security, DC=boco
发照者: CN=securityCA, DC=security, DC=boco
序号: 72880fb3005cd7a54efa9c224241008b
有效期间: Thu Nov 10 20:48:49 CST 2005 至: Tue Nov 10 20:55:33 CST 2015
认证指纹:
如何修身养性 MD5: 51:3F:C3:B1:C3:A6:EF:24:55:70:2A:25:0D:EB:57:59夏家三千金分集介绍
SHA1: B3:EE:CC:92:E3:D4:87:48:D4:1D:F3:53:5B:0E:99:E1:B7:0F:27:20
信任这个认证? [否]: y
认证已添加至keystore中
导入申请的计算机证书
D:\Borland\jdk142_05\bin>keytool -import -keystore security51.keystore -alias co
mkey -
输入keystore密码: lwfmah
认证已添加至keystore中
5 编写如下代码修改Active Direcotry 域用户密码
public static void main(String[] args) throws UnknownHostException,
IOException {
// java.Socket sock = new java.Socket("10.110.180.50",636);
// boolean b = sock.isConnected();
Hashtable env = new Hashtable();
String adminName = "cn=administrator,cn=users,DC=security,DC=boco";
String adminpassword = "123456789";
String userName = "CN=iam_lwf_count,OU=网管中心,DC=security,DC=boco";
// old password Ab123456
String newPassword = "liaowufeng";
认证已添加至keystore中
5 编写如下代码修改Active Direcotry 域用户密码
public static void main(String[] args) throws UnknownHostException,
IOException {
// java.Socket sock = new java.Socket("10.110.180.50",636);
// boolean b = sock.isConnected();
Hashtable env = new Hashtable();
String adminName = "cn=administrator,cn=users,DC=security,DC=boco";
String adminpassword = "123456789";
String userName = "CN=iam_lwf_count,OU=网管中心,DC=security,DC=boco";
// old password Ab123456
String newPassword = "liaowufeng";
String keystore = "D:/Borland/jdk142_05/bin/security51.keystore";
// String keystore = "E:/project/iam/testADlhj.keystore";
System.setProperty("ustStore", keystore);
System.setProperty("ustStorePassword", "lwfmah");
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, adminName);
env.put(Context.SECURITY_CREDENTIALS, adminpassword);
env.put(Context.SECURITY_PROTOCOL, "ssl");
String ldapURL = "ldaps://10.110.180.50:636";
env.put(Context.PROVIDER_URL, ldapURL);
try {
LdapContext ctx = new InitialLdapContext(env, null);
ModificationItem[] mods = new ModificationItem[1];
// String keystore = "E:/project/iam/testADlhj.keystore";
System.setProperty("ustStore", keystore);
System.setProperty("ustStorePassword", "lwfmah");
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, adminName);
env.put(Context.SECURITY_CREDENTIALS, adminpassword);
env.put(Context.SECURITY_PROTOCOL, "ssl");
String ldapURL = "ldaps://10.110.180.50:636";
env.put(Context.PROVIDER_URL, ldapURL);
try {
LdapContext ctx = new InitialLdapContext(env, null);
ModificationItem[] mods = new ModificationItem[1];
String newQuotedPassword = "\"" + newPassword + "\"";
byte[] newUnicodePassword = Bytes("UTF-16LE");
mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE,new BasicAttribute("unicodePwd",newUnicodePassword));
difyAttributes(userName, mods);
System.out.println("Reset Password for: " + userName);
ctx.close();
System.out.println("Problem encoding password222: ");
} catch (Exception e) {
e.printStackTrace();
System.out.println("Problem encoding password222: " + e);
}
}
byte[] newUnicodePassword = Bytes("UTF-16LE");
mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE,new BasicAttribute("unicodePwd",newUnicodePassword));
difyAttributes(userName, mods);
System.out.println("Reset Password for: " + userName);
ctx.close();
System.out.println("Problem encoding password222: ");
} catch (Exception e) {
e.printStackTrace();
System.out.println("Problem encoding password222: " + e);
}
}
发布评论