早期项目上遇到的需要集成windows域用户的信息的功能,第一次接触ad域,因为不了解而且网上其他介绍不明确,比较费时,这里记录下。
说明:
(1). 特别注意:Java操作查询域用户信息获取到的数据和域管理员在电脑上操作查询的数据可能会存在差异(同一个意思的表示字段,两者可能不同)。
(2). 连接ad域有两个地址: ldap://XXXXX.com:389 和 ldap://XXXXX.com:636(SSL)。
(3). 端口389用于一般的连接,例如登录,查询等非密码操作,端口636安全性较高,用户密码相关操作,例如修改密码等。
(4). 域控可能有多台服务器,之间数据同步不及时,可能会导致已经修改的数据被覆盖掉,这个要么域控缩短同步的时间差,要么同时修改每一台服务器的数据。
1. 389登录
只要不抛出异常就是验证通过
1 | java复制代码public LdapContext adLogin(JSONObject json) { |
2. 636登录验证
证书提前导入的Java库中 参考:www.cnblogs.com/moonson/p/4…
1 | java复制代码public LdapContext adLoginSSL(JSONObject json) { |
3. 查询域用户信息
1 | java复制代码public List getUserKey(JSONObject json){ |
4. 重置用户密码
1 | java复制代码// 管理员重置用户密码,后强制用户首次登录修改密码 |
5. 域账号解锁
1 | java复制代码// 表示锁定的字段需要测试,不一定这个lockoutTime |
欢迎关注公众号:纪先生笔记
本文转载自: 掘金