AD域和LDAP协议
随着我们的习大大上台后,国家在网络信息安全方面就有了很明显的改变!所以现在好多做网络信息安全产品的公司和需要网络信息安全的公司都会提到用AD域服务器来验证,这里就简单的研究了一下!
先简单的讲讲AD域和LdAP目录访问协议:AD(active directory)活动目录,动态的建立整个域模式网络中的对象的数据库或索引,协议为LDAP,安装了AD的服务器称为DC域控制器,存储整个域的对象的信息并周期性更新!其中的对象分为三大类——资源(如印表机)、服务(如电子邮件)、和人物(即帐户或用户,以及组)。
不少LDAP开发人员喜欢把LDAP与关系数据库相比,认为是另一种的存贮方式,然后在读性能上进行比较。实际上,这种对比的基础是错误的。LDAP和关系数据库是两种不同层次的概念,后者是存贮方式(同一层次如网络数据库,对象数据库),前者是存贮模式和访问协议。LDAP是一个比关系数据库抽象层次更高的存贮概念,与关系数据库的查询语言SQL属同一级别。LDAP最基本的形式是一个连接数据库的标准方式。该数据库为读查询作了优化。因此它可以很快地得到查询结果,不过在其它方面,例如更新,就慢得多。AD域和LdAP目录访问协议就介绍到这里!下面来看看简单的demo吧!
- /**
 - * @Description:
 - *
 - * @Title: LdAPTest.java
 - * @Package com.joyce.itext.main
 - * @Copyright: Copyright (c) 2014
 - *
 - * @author Comsys-LZP
 - * @date 2014-8-7 上午10:20:22
 - * @version V2.0
 - */
 - package com.joyce.itext.main;
 - import java.util.Properties;
 - import javax.naming.Context;
 - import javax.naming.NamingEnumeration;
 - import javax.naming.NamingException;
 - import javax.naming.directory.SearchControls;
 - import javax.naming.directory.SearchResult;
 - import javax.naming.ldap.InitialLdapContext;
 - import javax.naming.ldap.LdapContext;
 - /**
 - * @Description:拉取AD域账户
 - *
 - * @ClassName: LdAPTest
 - * @Copyright: Copyright (c) 2014
 - *
 - * @author Comsys-LZP
 - * @date 2014-8-7 上午10:20:22
 - * @version V2.0
 - */
 - public class LdAPTest {
 - public static void main(String[] args) {
 - Properties env = new Properties();
 - String adminName = "administrator@2003.com";//username@domain
 - String adminPassword = "admin";//password
 - String ldapURL = "LDAP://10.10.2.153:389";//ip:port
 - env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
 - env.put(Context.SECURITY_AUTHENTICATION, "simple");//"none","simple","strong"
 - env.put(Context.SECURITY_PRINCIPAL, adminName);
 - env.put(Context.SECURITY_CREDENTIALS, adminPassword);
 - env.put(Context.PROVIDER_URL, ldapURL);
 - try {
 - LdapContext ctx = new InitialLdapContext(env, null);
 - SearchControls searchCtls = new SearchControls();
 - searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
 - String searchFilter = "(&(objectCategory=person)(objectClass=user)(name=*))";
 - String searchBase = "DC=2003,DC=com";
 - String returnedAtts[] = {"memberOf"};
 - searchCtls.setReturningAttributes(returnedAtts);
 - NamingEnumeration<SearchResult> answer = ctx.search(searchBase, searchFilter,searchCtls);
 - while (answer.hasMoreElements()) {
 - SearchResult sr = (SearchResult) answer.next();
 - System.out.println("<<<::[" + sr.getName()+"]::>>>>");
 - }
 - ctx.close();
 - }catch (NamingException e) {
 - e.printStackTrace();
 - System.err.println("Problem searching directory: " + e);
 - }
 - }
 - }
 
以上就是从AD域上拉取域账号!当然现在Java还有许多其他的jar也能操作AD域,这里不就不多介绍了,有兴趣的同伴可以去百度、谷歌!最后给大伙儿看看效果图:
还想多说一句,其实Java原生态的API老好了,所以能用原生态的最好,因为别人提供的jar包如果没有处理好的话,还不如原生态的呢!感谢大家的关注
AD域和LDAP协议的更多相关文章
- Java使用LdAP获取AD域用户
		
随着我们的习大大上台后,国家在网络信息安全方面就有了非常明显的改变!所以如今好多做网络信息安全产品的公司和须要网络信息安全的公司都会提到用AD域server来验证,这里就简单的研究了一下! 先简单的讲 ...
 - GitBlit集成AD域LDAP
		
GitBlit的配置文件: gitlblit安装目录下的 /data/gitblit.properties ,用记事本或其他编译器打开即可. 集成AD域的LDAP操作步骤 打开配置文件,添加以下内 ...
 - AD 域服务简介(二)- Java 获取 AD 域用户
		
博客地址:http://www.moonxy.com 关于AD 域服务器搭建及其使用,请参阅:AD 域服务简介(一) - 基于 LDAP 的 AD 域服务器搭建及其使用 一.前言 先简单简单回顾上一篇 ...
 - JAVA 通过LDAP获取AD域用户及组织信息
		
因为工作需求近期做过一个从客户AD域获取数据实现单点登录的功能,在此整理分享. 前提:用户可能有很多系统的情况下,为了方便账号的统一管理使用AD域验证登录,所以不需要我们的系统登录,就需要获取用户的A ...
 - JAVA使用Ldap操作AD域
		
项目上遇到的需要在集成 操作域用户的信息的功能,第一次接触ad域,因为不了解而且网上其他介绍不明确,比较费时,这里记录下. 说明: (1). 特别注意:Java操作查询域用户信息获取到的数据和域管理员 ...
 - AD 域服务简介(一)- 基于 LDAP 的 AD 域服务器搭建及其使用(转)
		
一.前言 1.1 AD 域服务 什么是目录(directory)呢? 日常生活中使用的电话薄内记录着亲朋好友的姓名.电话与地址等数据,它就是 telephone directory(电话目录):计算机 ...
 - 实验记录贴 —— 账号同步实验 RTX 和 LDAP(AD域)
		
目前,公司有多个系统,RTX,邮箱(MD),OA,NC. 这些系统之间,如果要实现单点登录的话,账户肯定需要同步,或者某一种映射机制. 如果所有数据都和中央账号数据库(LDAP,这里是AD域)看齐,那 ...
 - springboot整合微软的ad域,采用ldap的api来整合,实现用户登录验证、
		
流程: 1.用户调登录接口,传用户名和密码2.用户名和密码在ad验证,验证通过后,返回当前用户的相关信息.(注:ldap为java自带的api不需要maven引入其他的)3.根据返回的用户信息,实现自 ...
 - SonarQube 配置 LDAP(AD域)
		
安装插件 1.下载 LDAP Plugin 插件,地址:https://docs.sonarqube.org/display/SONARQUBE67/LDAP+Plugin2.将下载的插件,放到 SO ...
 
随机推荐
- 将自定义控件加载到RichTextbox并进行交互
			
先前遇到一个问题,将自定义控件加载到RichTextbox后,无法触发自定义控件的各种事件,最终找到解决办法:设置RichTextbox的IsDocumentEnabled="True&qu ...
 - WPF支持OneWay,TwoWay,OneTime,Default和OneWayToSource
			
原文:WPF支持OneWay,TwoWay,OneTime,Default和OneWayToSource 无论是目标属性还是源属性,只要发生了更改,TwoWay 就会更新目标属性或源属性. OneWa ...
 - RestSharp 封状实例
			
1 public class Rest<T> { private static Logger logger = LogManager.GetCurrentClassLogger(); pr ...
 - TaskBarProgress(任务栏进度条)
			
原文:TaskBarProgress(任务栏进度条) </Grid> { { InitializeComponent(); Loaded += } { BackgroundWorker w ...
 - Debian下编译安装驱动模块
			
在Linux下,我们常有需要自己来编译安装驱动模块的情况,例如要安装显卡驱动,要安装无线驱动,有的时候某个程序的安装使用与需要安装相应的驱动模块.Debian Linux下的生活本已十分简单,使用ap ...
 - BGP路由的手动汇总
			
网络拓扑 XRV1 ========================================================== !hostname XRV1!interface Loopba ...
 - centos 6.5 搭建ftp 服务器(vsftpd的配置文件说明)
			
0x00 如何快速的搭建简易的资源发布站 开启简易的python http服务器 1 2 cd /home/your_path python -m SimpleHTTPServer 8000 开启防火 ...
 - Windows Phone SplashScreen初始屏幕示例
			
protected override void OnLaunched(LaunchActivatedEventArgs args) { if (args.PreviousExecutionState ...
 - Android卡片设置透明度失效问题
			
最近在做蓝牙电话项目,需要支持双路通话,涉及到通话卡片透明度调节,当正在通话中,有新的来电时,原来的通话卡片需要做成30%的透明度,本来很简单的一个小改进,但通过 setAlpha()接口总是失效! ...
 - Node EE方案 -- Rockerjs在微店的建设与发展
			
本文是根据2019.4.13日参加 "Node-Party"论坛使用的PPT,加上笔者新的思考与沉淀而来.在此再次感谢贝贝网前端部门和芋头君以及相关与会人员的支持! -- 微店杨力 ...