前段时间,我接到了一个新任务:使用JAVA控制AD域进行基本的操作。经几天摸索也看来多位博友的代码,现在摸索出了一套较为详细的Java操控AD域的方法。废话不多说,现进入正题》》》
一、安装域控服务器
什么是域控服务器我就不多说了,请各位自行百度,安装的教程在下面的连接里:http://www.jb51.net/os/windows/win2008/69883.html
二、安装证书控制服务
1. AD域控安装证书服务
https://wenku.baidu.com/view/91fad77b5acfa1c7aa00ccbc.html
2. 从ad域上拿ca证书文件
1)点链接:下载 CA证书、证书链或CRL
2)选择编码base64
3)点链接:下载 CA证书
ps:这里采用的是结合ad服务器上的证书颁发机构,如果要采用第三方机构发布的证书需要另行配置,详情看我的另一篇文章。
3. 根据CA证书生成keystore文件
三、ping通虚拟机
我相信大部分人做这个开发应该是在虚拟机上做开发测试的,ping通虚拟机是必不可少的。
四、编写Java代码
如果你完成了上述步骤,那么恭喜你,基本的环境你已经搭建完成了,现在可以开始我们的开发。首先介绍一下AD域的用户存储,实际上就是一个ldap的目录存储过程,所以我们可以根据对ldap的访问模式访问到ad域上的对象,例如我想访问AD与上名为上海的OU下的一个用户test1,那么我可以访问“CN=test1,OU=上海,DC=adserv,DC=com”(后面的DC是我的域控服务器的名字如:adserv.com)。知道了如何访问指定对象,那么接下来的事情不是变得简单了?下面是我借鉴了网上的一些大牛的代码,自己编写的操作类如有什么异常,非常欢迎您的指点哦
1.第一步 创建Ldap连接,因为AD域的连接控制本质上就是对Ldap的控制,所以获取了ldap的连接就是获取了AD域的操作权。
2.第二步 完成上述代码之后下面的增删查改,只要通过getConnect()方法获取链接就可以进行操作。
a.添加用户操作新建用户的话一般新建在一个OU(组织结构)中,而我的需求中是要对在