要通过Java
使用 LDAP获取
AD 域用户和组织信息,需要
使用Java的JNDI API。
以下是一个简单的Java程序,演示如何
使用JNDI API连接到
AD 域并获取用户和组织信息:
import java.util.*;import javax.naming.*;import javax.naming.directory.*;public classADInfo {public static void main(String[] args) {StringldapURL = "ldap://AD 域服务器地址:389";StringldapUser = "CN=LDAP查询用户,OU=xxx,DC=xxx,DC=xxx";StringldapPassword = "LDAP查询用户密码";String searchBase = "OU=xxx,DC=xxx,DC=xxx";Hashtable<String, String> env = new Hashtable<String, String>();env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");env.put(Context.PROVIDER_URL,ldapURL);env.put(Context.SECURITY_AUTHENTICATION, "simple");env.put(Context.SECURITY_PRINCIPAL,ldapUser);env.put(Context.SECURITY_CREDENTIALS,ldapPassword);try {DirContext ctx = new InitialDirContext(env);SearchControls searchControls = new SearchControls();searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);String filter = "(objectCategory=user)";NamingEnumeration<SearchResult> results = ctx.search(searchBase, filter, searchControls);while (results.hasMore()) {SearchResult searchResult = results.next();Attributes attributes = searchResult.getAttributes();Attribute attribute = attributes.get("cn");String cn = (String) attribute.get();System.out.println(cn);}filter = "(objectCategory=organizationalUnit)";results = ctx.search(searchBase, filter, searchControls);while (results.hasMore()) {SearchResult searchResult = results.next();Attributes attributes = searchResult.getAttributes();Attribute attribute = attributes.get("ou");String ou = (String) attribute.get();System.out.println(ou);}ctx.close();} catch (NamingException e) {e.printStackTrace();}}}
在上面的代码中,替换以下变量:
-
ldapURL:
AD 域服务器地址和端口号
-
ldapUser:用于查询
AD 域的
LDAP用户的DN
-
ldapPassword:用于查询
AD 域的
LDAP用户的密码
- searchBase:要搜索的
AD 域的基本DN
该程序连接到
AD 域并搜索用户和组织。它
使用过滤器来限制搜索结果,只搜索用户和组织单位对象。它还
使用SearchControls对象来设置搜索范围。
对于每个搜索结果,程序从属性中提取cn或ou,并将其打印到
控制台上。
请注意,此代码需要在Java应用程序中包含JNDI API类路径。如果您
使用Maven或Gr
adle之类的构建工具,则可以将以下依赖项添加到项目中:
<dependency><groupId>com.sun.jndi</groupId><artifactId>ldap</artifactId><version>1.2.1</version></dependency>
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/3388.html