精华内容
下载资源
问答
  • LDAP入门

    2021-03-18 19:04:41
    LDAP入门 首先要先理解什么是LDAP,当时我看了很多解释,也是云里雾里,弄不清楚。在这里给大家稍微捋一捋。 首先LDAP是一种通讯协议,LDAP支持TCP/IP。协议就是标准,并且是抽象的。在这套标准下,AD(Active ...

    LDAP入门

    首先要先理解什么是LDAP,当时我看了很多解释,也是云里雾里,弄不清楚。在这里给大家稍微捋一捋。

    首先LDAP是一种通讯协议,LDAP支持TCP/IP。协议就是标准,并且是抽象的。在这套标准下,AD(Active Directory)是微软出的一套实现。
    那AD是什么呢?暂且把它理解成是个数据库。也有很多人直接把LDAP说成数据库(可以把LDAP理解成存储数据的数据库)。像是其他数据库一样,LDAP也是有client端和server端。server端是用来存放资源,client端用来操作增删改查等操作。

    而我们通常说的LDAP是指运行这个数据库的服务器。

    可以简单理解AD =LDAP服务器+LDAP应用。

    那LDAP这种数据库有什么特殊的呢?

    我们知道,像MySQL数据库,数据都是按记录一条条记录存在表中。而LDAP数据库,是树结构的,数据存储在叶子节点上。看看下面的比喻:

    假设你要树上的一个苹果(一条记录),你怎么告诉园丁它的位置呢?当然首先要说明是哪一棵树(dc,相当于MYSQL的DB),然后是从树根到那个苹果所经过的所有“分叉”(ou),最后就是这个苹果的名字(uid,相当于MySQL表主键id)。好了!这时我们可以清晰的指明这个苹果的位置了,就是那棵“歪脖树”的东边那个分叉上的靠西边那个分叉的再靠北边的分叉上的半红半绿的……,晕了!你直接爬上去吧!
    

    就这样就可以描述清楚“树结构”上的一条记录了。
    说一下LDAP里如何定义一个记录的位置吧。

    树(dc=ljheee)
    分叉(ou=bei,ou=xi,ou= dong)
    苹果(cn=redApple)
    

    好了,redApple的位置出来了:

    dn:cn=honglv,ou=bei,ou=xi,ou=dong,dc=ljheee
    

    其中dn标识一条记录,描述了一条数据的详细路径。
    咦!有人疑问,为什么ou会有多个值?你想想,从树根到达苹果的位置,可能要经过好几个树杈,所有ou可能有多个值。关于dn后面一长串,分别是cn,ou,dc;中间用逗号隔开。

    总结一下LDAP树形数据库如下:
    dn :一条记录的详细位置
    dc :一条记录所属区域    (哪一颗树)
    ou :一条记录所属组织    (哪一个分支)
    cn/uid:一条记录的名字/ID   (哪一个苹果名字)
    LDAP目录树的最顶部就是根,也就是所谓的“基准DN"。
    

    为什么要用LDAP目录树来存储数据,用MySQL不行吗,为什么非要搞出一个树形的数据库呢?

    这是因为用树形结构存储数据,查询效率更高(具体为什么,可以看一下关系型数据库索引的实现原理——B树/B+树)。在某些特定的场景下,使用树形数据库更理想。比如:需要储存大量的数据,而且数据不是经常更改,需要很快速的查找。

    把它与传统的关系型数据库相比,LDAP除了快速查找的特点,它还有很多的运用场景,比如域验证等。

    LDAP编程操作

    我们可以用JDBC操作MySQL数据库,进行对数据的增删改查。同样,LDAP树形数据库,也可以通过JDBC方式;除此之外,还可以用JNDI的方式(更推荐),因为树形可以看做是目录,树结构的枝杈相当于目录的层级。

    还有LDAP数据库展示数据也是树形的,如下图是用ApacheDirectoryStudio连接的LDAP服务器:

    在这里插入图片描述

    可以把ApacheDirectoryStudio看做是连接数据库服务器的界面化的client,相当于Navicat、WorkBench。新建连接,连接数据库服务器的操作类似。

    ApacheDirectoryStudio下载地址

    http://download.csdn.net/download/ljheee/10145654

    JNDI连接LDAP服务器

    import org.springframework.beans.factory.annotation.Autowired;
    import java.util.Hashtable;
    import javax.naming.*;
    import javax.naming.directory.Attribute;
    import javax.naming.directory.Attributes;
    import javax.naming.directory.DirContext;
    import javax.naming.directory.InitialDirContext;
    
    public class LdapJNDI {
    
        @Autowired
        LdapConfiguration ldapConfiguration;
    
        public void JNDILookup() {
            String rootFilter = "o=xxx.com,o=isp";
    //        String filter = "(&(smart-type=E1)(smart-status=1))";
            String filter = "(&(smart-type=E1)(uid=00012047))";
            String username = "uid=USER_NAME,ou=Authorization,ou=People,o=cc.com,o=isp";//xxx为申请的对接账户
            String password = "PASSW";
    
            Hashtable env = new Hashtable();
            env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");//设置连接LDAP的实现工厂
            env.put(Context.PROVIDER_URL, "ldap://172.26.39.77:389/" + rootFilter);// 指定LDAP服务器的主机名和端口号
            env.put(Context.SECURITY_AUTHENTICATION, "simple");//给环境提供认证方法,有SIMPLE、SSL/TLS和SASL
            env.put(Context.SECURITY_PRINCIPAL, username);//指定进入的目录识别名DN
            env.put(Context.SECURITY_CREDENTIALS, password); //进入的目录密码
            env.put("filter",filter);
            DirContext ctx = null;
    
            try {
                // 得到初始目录环境的一个引用
                ctx = new InitialDirContext(env);
    
                //The search base entry 'uid=00012047,ou=Internal,ou=People,o=xxx.com,o=isp' does not exist]; remaining name 'uid=00012047,ou=Internal'
    //            Attributes attrs = ctx.getAttributes("uid=00012047,ou=Internal,ou=People");//获取到一个人员,
    
    
                NamingEnumeration bindings = ctx.listBindings("ou=Internal,ou=People");//列举 内部人员
    
                while (bindings.hasMore()) {
                    Binding bd = (Binding)bindings.next();
                    System.out.println(bd.getName() + ": " + bd.getObject());
                }
    
    
                 /*根据结点的DN来查找它的所有属性, 然后再从属性中得到所有的值,注意一个属性可以有多个值*/
    //            for (NamingEnumeration ae = attrs.getAll(); ae.hasMore(); ) {
    //                //获取一个属性
    //                Attribute attr = (Attribute) ae.next();
    //                for (NamingEnumeration ve = attr.getAll(); ve.hasMore(); ) {
    //                    System.out.println(String.format("Attribute=%s,Value=%s",attr.getID(),ve.next()) );
    //                }
    //            }
    
            } catch (javax.naming.AuthenticationException e) {
                System.out.println("认证失败");
                e.printStackTrace();
            } catch (Exception e) {
                System.out.println("认证出错:");
                e.printStackTrace();
            }finally {
                if (ctx != null) {
                    try {
                        ctx.close();
                    } catch (NamingException e) {
                        e.printStackTrace();
                    }
                }
            }
    
        }
    
        public static void main(String[] args) {
            LdapJNDI ldapJNDI = new LdapJNDI();
            ldapJNDI.JNDILookup();
    
        }
    
    }
    
    

    最后总结一下LDAP:
    1、LDAP的结构用树来表示,而不是用表格。正因为这样,就不能用SQL语句了。
    2、LDAP可以很快地得到查询结果,不过在写方面,就慢得多。
    3、LDAP提供了静态数据的快速查询方式。
    4、Client/server模型,Server 用于存储数据,Client提供操作目录信息树的工具。
    5、LDAP是一种开放Internet标准,LDAP协议是跨平台的Interent协议。

    Spring LDAP的使用
    Spring ldap ODM(Java反射实战 操作ladp ODM)

    展开全文
  • LDAP入门使用

    万次阅读 2018-09-20 10:05:14
    LDAP介绍 一个为查询、浏览和搜索而优化的专业分布式数据库,它呈树状结构组织数据,和关系数据库不同,它有优异的读性能,但写性能差,并且没有事务处理、回滚等复杂功能,不适于存储修改频繁的数据,所以大多数...
    • LDAP介绍

    一个为查询、浏览和搜索而优化的专业分布式数据库,它呈树状结构组织数据,和关系数据库不同,它有优异的读性能,但写性能差,并且没有事务处理、回滚等复杂功能,不适于存储修改频繁的数据,所以大多数是用来查询的。

    LDAP组织数据方式:

    在这里插入图片描述

    dn :一条记录的详细位置
    dc :一条记录所属区域 (哪一颗树)
    ou :一条记录所属组织 (哪一个分支)
    cn/uid:一条记录的名字/ID (哪一个苹果名字)

    • JXplorer使用

    JXplorer连接LDAP,相当于是Navicat连接Mysql
    填写IP Port DN 用户名 密码后就可以看到数据库内容

    在这里插入图片描述

    • LDAP查询数据
    public String JNDILookup() {
        // 连接LDAP库
        Hashtable env = new Hashtable<>();
        String url = "ldap://xx.xx.xx.xx:389/";
        String searchBase = "OU=xx,DC=xx,DC=xx,DC=com,DC=cn";
        String user = "xxx";
        String password = "xxx";
        env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); //LDAP工厂
        env.put(Context.SECURITY_AUTHENTICATION, "simple"); //LDAP访问安全级别
        env.put(Context.PROVIDER_URL, url);
        env.put(Context.SECURITY_PRINCIPAL, user);
        env.put(Context.SECURITY_CREDENTIALS, password);
        env.put("java.naming.ldap.attributes.binary", "objectSid objectGUID");
        LdapContext ctx = null;
        try {
          ctx = new InitialLdapContext(env, null);
    
          // 根据条件查询
          String cn = "xxx";
          String filter = "(&(objectClass=top)(objectClass=organizationalPerson)(cn=" + cn + "))";
          //String filter = "(&(objectClass=top)(objectClass=organizationalPerson))";
          SearchControls searchControls = new SearchControls();
          String[] attrNames = {"cn", "mail"};
          searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);
          //设置将被返回的Attribute
          searchControls.setReturningAttributes(attrNames);
          NamingEnumeration<SearchResult> search = ldapCtx.search(searchBase, filter.toString(), searchControls);
          while (search.hasMore()) {
            SearchResult result = search.next();
            NamingEnumeration<? extends Attribute> attrs = result.getAttributes().getAll();
            while (attrs.hasMore()) {
              Attribute attr = attrs.next();
              System.out.println(attr.getID() + "=====" + attr.get());
            }
            System.out.println("===========");
          }
        } catch (NamingException e) {
          e.printStackTrace();
        } finally {
          if (ctx != null) {
            try {
              ctx.close();
            } catch (NamingException e) {
            }
          }
    
        }
        return "返回信息";
      }
    
    • LdapQueryBuilder类封装使用

    在application.yml中写入LDAP相关的配置信息,通过@Value注解赋值

    @Configuration
    public class LdapConfig {
      @Autowired
      private GlobalSettings globalSettings;
    
      @Bean
      @Primary
      public LdapContextSource ldapContextSource() {
        LdapContextSource ldapContextSource = new LdapContextSource();
        ldapContextSource.setUrl(globalSettings.getLdapUrl());
        ldapContextSource.setBase(globalSettings.getLdapBase());
        ldapContextSource.setUserDn(globalSettings.getLdapUser());
        ldapContextSource.setPassword(globalSettings.getLdapPass());
        return ldapContextSource;
      }
    
      @Bean
      @Primary
      // LdapTemplate:连接LDAP库
      public LdapTemplate ldapTemplate() {
        LdapTemplate ldapTemplate = new LdapTemplate();
        ldapTemplate.setContextSource(ldapContextSource());
        return ldapTemplate;
      }
    }
    

    通过浏览器输入ldap中某一个用户的登录信息后获取其他信息,首先注入ldapTemplate

    public HashMap<Object, Object> login(String userid, String password) {
        HashMap<Object, Object> hashMap = new HashMap<>();
        try {
          // 查询的用户条件
          ContainerCriteria containerCriteria = LdapQueryBuilder.query()
                  .base(LdapUtils.emptyLdapName())
                  .where("objectClass").is("person")
                  .and("sAMAccountName").is(userid);
          LdapName ldapName = ldapTemplate.authenticate(containerCriteria, password, (ctx, ldapEntryIdentification) -> ldapEntryIdentification.getRelativeName());
          // 查询ldap中字段
          final String[] ATTRS = {"sAMAccountName", "mail", "name"};
          User lookupedUser = ldapTemplate.lookup(ldapName, ATTRS, new AbstractContextMapper<User>() {
            @Override
            protected User doMapFromContext(DirContextOperations ctx) {
              User user = new User();
              user.setUsername(ctx.getStringAttribute(ATTRS[0]));
              user.setEmail(ctx.getStringAttribute(ATTRS[1]));
              user.setName(ctx.getStringAttribute(ATTRS[2]));
              return user;
            }
          });
          hashMap.put("isSuccess",true);
          hashMap.put("info",lookupedUser.toString());
          return  hashMap;
        } 
    }
    

    没有不够学的知识呀,最近这种感慨是越来越多了,每天都是新的东西,这让一个很久不接触新技术的人很是不习惯呀,但没办法,我需要工作,需要生存。

    展开全文
  • Ldap入门文档

    2015-02-03 13:28:58
    Ldap入门文档
  • ldap入门基础资料

    2015-03-23 15:03:08
    ldap入门基础资料,自己整理,不对的还请指正
  • LDAP入门学习

    2018-07-24 19:47:25
    LDAP是一个轻量级目录访问协议,笔者由于参加公司项目,在项目需求中涉及到对于LDAP的操作。本文是笔者对LDAP学习知识的记录与总结与大家分享,希望能为大家提供帮助。 2 预期读者 1. 数通畅联全体成员 2. I...

    https://blog.csdn.net/zcy0909/article/details/78397892


    1        背景概述
    LDAP是一个轻量级目录访问协议,笔者由于参加公司项目,在项目需求中涉及到对于LDAP的操作。本文是笔者对LDAP学习知识的记录与总结与大家分享,希望能为大家提供帮助。

    2        预期读者
    1.       数通畅联全体成员

    2.       IT相关行业工作者

    3        LDAP简介
    3.1    概念介绍
    LDAP的全称为Lightweight Directory Access Protocol(轻量级目录访问协议), 基于X.500标准, 支持 TCP/IP。

    LDAP目录为数据库,通过LDAP服务器(相当于DBMS)处理查询和更新, 以树状的层次结构来存储数据,相对关系型数据库, LDAP主要是优化数据读取的性能,适用于比较少改变、跨平台的信息。

    3.2    命名规则
    dn :一条记录的位置(每一个条目的唯一的标识名)

    dc :一条记录所属区域(哪一棵树,根节点)

    ou :一条记录所属组织(树下的分叉,部门名)

    cn/uid:一条记录的名字/ID(叶子节点的名字,员工名)

    注意:通常对LDAP的添加、删除、更改、检索都是以条目为基本对象的。

    监听端口:

    TCP/IP port: 389

    SSL port: 636

    3.3    位置定义
    dn:cn=redgreenapple,ou=north,ou=south,ou=east,dc=apple,dc=tree

    4        环境搭建
    4.1    介质安装
    1.       点击进入如下页面点击“Yes”按钮,开始安装;

    2.       点击“Next”按钮,进入安装页面;

    3.       点击“Install”按钮,进入安装目录页面;

    4.       设置LDAP安装目录后,点击“Next”按钮,进入安装目录页面;

    5.       设置LDAP安装内容,点击“Next”按钮,进入下一级页面;

    6.       设置主机IP,本例为“ZCY-PC”,以及端口“389,636”以及密码“secret”,点击“Next”按钮,进入下一级页面;

    7.       点击“Next”进入进度条安装页面;

    8.       安装完成界面,点击“Close”关闭安装界面,进行服务器配置。

    4.2    配置调整
    1.       安装完成后,在系统服务中,找到 OpenLDAP Service,先停止服务,再把启动类型修改成手动,便于自己的测试。

    安装目录:D:\work\agileai\09_study\ldap\OpenLDAP

    2.       编辑文件:slapd.conf—注意备份

    替换为:

    suffix            "dc=micmiu,dc=com"

    rootdn          "cn=Manager,dc=micmiu,dc=com"

    4.3    启动服务
    1.       打开控制台,切换到openLDAP安装目录下,启动openLDAP,命令:slapd -d1

    2.       日志信息:slapd starting 表示服务已经启动了。

    3.       在openLDAP的安装目录下(D:\work\agileai\09_study\ldap\OpenLDAP)新建文件mydemo.ldif,填写内容如下:

    dn:dc=micmiu,dc=com

    objectclass:domain

    objectclass:top

    o:MichaelBlog

    dc:micmiu

     

    dn:ou=Developer,dc=micmiu,dc=com

    objectclass:organizationalUnit

    ou:Developer

    description:Containerfordeveloperentries

     

    dn:ou=Tester,dc=micmiu,dc=com

    objectclass:organizationalUnit

    ou:Tester

    description:Containerfortestentries

     

    dn:uid=Michael,ou=Developer,dc=micmiu,dc=com

    uid:Michael

    objectClass:inetOrgPerson

    mail:sjsky_007@gmail.com

    userPassword:111111

    labeledURI:http://www.micmiu.com

    sn:Sun

    cn:MichaelSun

     

    dn:uid=Miumiu,ou=Tester,dc=micmiu,dc=com

    uid:Miumiu

    objectClass:inetOrgPerson

    userPassword:111111

    labeledURI:http://www.micmiu.com

    sn:Wu

    cn:MiumiuWu

    注意:格式要严格,每行的开头和末尾不能有空格

    4.       然后在控制台中切换到openLDAP安装目录下执行ldapadd命令:ldapadd -x -D "cn=Manager,dc=micmiu,dc=com" -w secret -f./mydemo.ldif

    参数说明:

    -x 使用简单验证方式

    -D 指定管理员DN(与slapd.conf中配置的一致)

    -W 大写W表示回车后根据提示输入密码,可以使用小写的-w password 直接输入密码

    -f 需要导入数据LDIF的文件名

    -h 目录服务器的IP地址

    添加成功会显示如下信息:

    5.       验证添加的信息,在控制台中,输入查询命令:ldapsearch -x -b "dc=micmiu,dc=com""(objectclass=*)"

    结果如下:

    4.4    启动客户端
    1.       LdapBrowser282.zip解压后直接双击:lbe.bat文件即可运行。

    2.       点击图中的 Fetch DNs 按钮会自动获取相关的DN信息的。

    3.       去除Anonymous bind的勾选填写用户“cn=Manager”以及密码“secret”。点击保存后

    5        操作LDAP
    5.1    创建连接
    5.1.1  核心代码

    参数说明
    Context.INITIAL_CONTEXT_FACTORY:LDAP工厂

    Context.PROVIDER_URL:LDAP服务器连接

    Context.SECURITY_AUTHENTICATION:LDAP访问安全级别

    Context.SECURITY_PRINCIPAL:连接的用户名,DN

    Context.SECURITY_CREDENTIALS:密码

    5.1.2  测试结果
    启动OpenLDAP服务;

    打开客户端进行链接测试,保证服务无问题;

    调用main中init方法认证连接服务器,结果如下:

    5.2    写入方法
    5.2.1  OU节点
    5.2.1.1 核心代码
    核心代码如下:

    u 代码说明

    1.       创建BasicAttributes对象,以及初始化objectClass;

    2.       设置objectClass的类型为organizationalUnit;

    3.       添加organizationalUnit中必要的属性ou以及description;

    4.       调用createSubcontext方法创建OU节点。

    5.2.1.2 测试结果
    Main函数调用addOu(root,ouName),入参为:

    String root = "dc=micmiu,dc=com";

    String ouName = "hi";

     

    运行结果

    刷新LDAP客户端显示添加信息如下:

    5.2.2  CN节点
    5.2.2.1 核心代码
    核心代码如下:

    u 代码说明

    1.       创建BasicAttributes对象,以及初始化objectClass;

    2.       设置objectClass的类型为inetOrgPerson;

    3.       添加inetOrgPerson中的属性cn,sn等;

    4.       调用createSubcontext创建cn节点。

    5.2.2.2 测试结果
    Main函数调用addCnOrUid(root,ouName,cnName),入参为:

    String root = "dc=micmiu,dc=com";

    String ouName = "hi";

    String cnName = "zhangsan";

     

    运行结果

    点击“刷新”按钮刷新LDAP客户端显示添加信息如下:

    5.3    读取方法
    5.3.1  全部节点
    5.3.1.1 核心代码
    核心代码如下:

    u 代码说明

    1.       初始化NamingEnumeration对象,获取入参下的对象信息;

    2.       遍历NamingEnumeration对象,获取对象中的属性信息分别进行打印;

    3.       获取NamingEnumeration对象下子节点的信息,原理与上方相同;

    4.       遍历子节点信息进行打印;

    5.3.1.2 测试结果
    Main函数调用searchInformation(),入参为:

    String root = "dc=micmiu,dc=com";

    "(objectclass=*)"

     

    运行结果

    5.3.2  指定节点
    5.3.2.1 核心代码
    与获取全部节点方法相同,传递参数不同

    5.3.2.2 测试结果
    Main函数调用searchInformation(),入参为:

    "ou=hi,"+root,"","(objectclass=*)"

     

    运行结果

    5.4    修改方法
    5.4.1  OU属性
    5.4.1.1 增加OU属性
    u 核心代码

    u 代码说明

    1.       初始化ModificationItem,定义需要添加属性的个数,本样例中为2个属性;

    2.       定义Attribute并将需要添加的属性进行初始化,添加至ModificationItem数组对象中;

    3.       添加属性的标签为DirContext.ADD_ATTRIBUTE;

    4.       调用modifyAttributes方法进行添加属性信息。

    u 测试说明

    Main函数调用addDescription4OuInfo("ou="+ouName + "," + root);

    运行结果

    点击“刷新”按钮刷新LDAP客户端后,显示添加属性如下:

    5.4.1.2 修改OU属性
    u 核心代码


    u 代码说明

    1.       初始化ModificationItem,定义需要修改属性的个数,本样例中为1个属性;

    2.       定义Attribute并将需要修改的属性进行初始化,添加至ModificationItem数组对象中;

    3.       修改属性的标签为DirContext. REPLACE_ATTRIBUTE;

    4.       调用modifyAttributes方法进行修改属性信息。

    u 测试结果

    Main函数调用modifyDescription4OuInfo("ou="+ouName + "," + root);

    运行结果

    点击“”按钮刷新LDAP客户端后,显示添加属性如下:

    5.4.1.3 删除OU属性
    u 核心代码


    u 代码说明

    1.       初始化ModificationItem,定义需要删除属性的个数,本样例中为1个属性;

    2.       定义Attribute并将需要删除的属性进行初始化,添加至ModificationItem数组对象中;

    3.       删除属性的标签为DirContext. REMOVE_ATTRIBUTE;

    4.       调用modifyAttributes方法进行删除属性信息。

    u 测试结果

    Main函数调用delDescription4OuInfo("ou="+ouName + "," + root);

    运行结果

    点击“刷新”按钮刷新LDAP客户端后,显示添加属性如下:

    5.4.2  CN属性
    5.4.2.1 增加CN属性
    u 核心代码


    u 代码说明

    1.       初始化ModificationItem,定义需要添加属性的个数,本样例中为3个属性;

    2.       定义Attribute并将需要添加的属性进行初始化,添加至ModificationItem数组对象中;

    3.       添加属性的标签为DirContext. ADD_ATTRIBUTE;

    4.       调用modifyAttributes方法进行添加属性信息。

    u 测试结果

    Main函数调用addDescription4CnInfo("cn="+cnName +"," + "ou="+ ouName + "," + root);

    运行结果

    点击“刷新”按钮刷新LDAP客户端后,显示添加属性如下:

    5.4.2.2 修改CN属性
    u 核心代码


    u 代码说明

    1.       初始化ModificationItem,定义需要修改属性的个数,本样例中为1个属性;

    2.       定义Attribute并将需要修改的属性进行初始化,添加至ModificationItem数组对象中;

    3.       修改属性的标签为DirContext. REPLACE_ATTRIBUTE;

    4.       调用modifyAttributes方法进行修改属性信息。

    u 测试结果

    Main函数调用modifyDescription4CnInfo("cn="+cnName +"," + "ou="+ ouName + "," + root);

    运行结果

    点击“刷新”按钮刷新LDAP客户端后,显示修改属性如下:

    5.4.2.3 删除CN属性
    u 核心代码


    u 代码说明

    1.       初始化ModificationItem,定义需要删除属性的个数,本样例中为1个属性;

    2.       定义Attribute并将需要删除的属性进行初始化,添加至ModificationItem数组对象中;

    3.       删除属性的标签为DirContext. REMOVE_ATTRIBUTE;

    4.       调用modifyAttributes方法进行删除属性信息。

    u 测试结果

    Main函数调用delDescription4CnInfo("cn="+cnName +"," + "ou="+ ouName + "," + root);

    运行结果

    点击“”按钮刷新LDAP客户端后,显示全部属性如下:

    5.5    删除方法
    5.5.1  删除CN
    5.5.1.1 核心代码

    5.5.1.2 测试结果
    Main函数调用deleteCnOrUid("cn="+cnName +"," + "ou="+ ouName +"," + root);

    运行结果

    点击“刷新”按钮刷新LDAP客户端后,显示如下:

    5.5.2  删除OU
    5.5.2.1 核心代码

    5.5.2.2 测试结果
    Main函数调用deleteOu("ou="+ouName + "," + root);

    运行结果

    点击“刷新”按钮刷新LDAP客户端后,显示如下:

    5.5.3  全部删除
    5.5.3.1 核心代码

    u 代码说明

    1.       通过传入ou以及root删除ou节点以及ou下子节点,读取ou下子节点信息放入NamingEnumeration对象中;

    2.       遍历NamingEnumeration对象,拼接参数后调用删除cn节点方法,进行删除

    3.       循环删除至ou下子节点全部被删除;

    4.       删除ou节点信息。

    5.5.3.2 测试结果
    Main函数调用deleteOu8Cn("ou="+ouName , root);

    运行结果

    打开LDAP客户端查看属性信息如下:

    点击“”按钮刷新LDAP客户端后,显示如下:

    6        附件说明
    附件为LdapHelper(下载链接链接: https://pan.baidu.com/s/1qYr4Vb2 密码: 2aps),包含相关的样例代码方法,LDAP的安装包以及客户端。


    版权声明:本文为博主原创文章,未经博主允许不得转载。    https://blog.csdn.net/zcy0909/article/details/78397892
    文章标签: java LDAP 读写
    相关热词: 上海通用ldap  虚拟机ldap  ldap引用  ldap方案  ldap访问控制
    2018年Python全栈平均薪资是多少?
    转型学Python如何从8K提升至20K月薪,多数高薪Python全栈需要掌握Django框架、网络爬虫Scrapy框架、Xpath、PhantomJS、BeautifulSoup、Redis存储和Docker容器技术、自动化运维、数据挖掘与机器学习…………
    想对作者说点什么? 我来说一句
    简单理解LDAP认证
     u012965373

     4064

    简单理解LDAP认证

    ldap 教程
     qq_19936739

     1843

    14.4  管理OpenLDAP 启动OpenLDAP服务器程序之后,接下来的操作就是通过客户端程序对目录进行操作,包括添加、修改、删除和搜索数据等操作。能对LDAP进行操作的客户端程序很多,...

    ldap 的启动和停止 - CSDN博客
    2018-6-11

    缺省选项是正常情况下的/usr/local/etc/openldap/slapd.conf。 -h 该选项...slapd将在打开侦听器并且读取任何配置文件或者初始化任何后端数据库之前使用chroot...

    Window下LDAP的安装和配置 - CSDN博客
    2018-7-18

    启动后:命令行打印许多信息,可以看到slad starting,则OpenLDAP启来了。 3 OpenLDAP配置 slapd.conf文件为OPenLDAP的配置文件,可以配置打印日志和登陆信息等 打开F...

    女性得了静脉曲张变成蚯蚓腿怎么办?用这方法坚持3个月全恢复
    梦雨商贸 · 顶新
    Ldap基础知识
     jbgtwang

     3589

    什么是JNDI 在一个企业中,命名服务为读者的应用程序在网络上定位对象提供了一种方法。一个命名服务将对象和名称联系在了一起,并且可以通过它们指定的名称找到相应的对象。 JNDI是Java命名和...

    ldap的启动问题 - CSDN博客
    2018-3-9

    首先下载openldap,解压后,打开ldap文件夹下的startldap.bat文件... 1.首先将openldap放置在某一路径下。打开ldap文件夹下的ldapstart.bat文件,该文件为批处理文件,...

    openLDAP在windows上的安装配置 - CSDN博客
    2018-6-5

    什么叫LDAP呢,概念的东西这里就不多讲了,网上搜索下有很多,本文的重点是介绍如何...打开控制台,切换到openLDAP安装目录下,启动openLDAP,命令如下: 1 slapd -d 1...

    LDAP概念和原理
     GoodShot

     1.1万

    什么是目录服务?     目录服务就是按照树状存储信息的模式     目录服务的特点? 目录服务与关系型数据库不同?  目录服务的数据类型主要是字符型, 而不是关系数据库提供的整数、...

    Linux运维笔记----LDAP 网络用户账户
     men_wen

     2230

    LDAP 网络用户账户1.LDAP•LDAP 目录服务器可以用作分布式、集中式、网络用户管理服务。目录条目按树结构排列 , 可以在其中进行搜索。基础 DN ( 区分名称 ) 是树的基础 , 用于搜索用...

    完整版的OpenLDAP搭建全过程 - CSDN博客
    2018-7-3

    7:vim /etc/sysconfig/authconfig   确保标记的已打开为yes      USESHADOW=yes 启用密码验证      USELDAPAUTH=yes 启用OpenLDAP验证  ...

    LDAP讲解以及LDAP BROWSER的使用(附下载链接) - CSDN博客
    2018-7-5

    LDAP BROWSER的安装和使用:LDAP BROWSER是一个访问目录的客户端,用于连接到服务器软件下载地址:点击打开链接直接安装即可,安装完双击打开,即可看到以下页面...

    LDAP 快速入门
     aoshilang2249

     979

    1. LDAP简介  LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)是实现提供被称为目录服务的信息服务。目录服务是一种特殊的数据库系统,其专...

    除皱抗衰,哪种方法更适合你呢?
    莱图印 · 顶新
    ldap 教程 - CSDN博客
    2018-7-23

    启动OpenLDAP服务器程序之后,接下来的操作就是通过客户端程序对目录进行操作,包括...执行以上命令将在当前工作目录得到文件export.ldif,打开文件可看到以下所示内容: ...

    启用OpenLDAP的日志功能 - CSDN博客
    2018-6-17

    ldap输出日志信息 一、背景        由于在使用C语言调用openldap接口的时候经常出现错误,因此需要打开openldap的日志信息来确定错误的原因。二、启...

    ldap
     yangguangmeng

     377

    1. 目录服务 目录是一个为查询、浏览和搜索而优化的专业分布式数据库,它呈树状结构组织数据,就好象Linux/Unix系统中的文件目录一样。目录数据库和关系数据库不同,它有优异的读性能,但写性能...

    LDAP简介及其使用
     dl425134845

     4410

    LDAP简介 LDAP(Lightweight Directory Access Protocol)的意思是"轻量级目录访问协议",是一个用于访问"目录服务器"(Directory Server...

    完整版的OpenLDAP搭建全过程 - CSDN博客
    2018-6-10

    总结: 先写总结,再写正文,嘿嘿嘿。这还是第一次认真的写个文档,写个总结,哈哈。大概在一个月前,第一次听说这个东西,完全没有概念,刚开始的时候看理论的知识,...

    OpenLDAP服务端+PhpLdapAdmin 基本安装与配置 - CSDN博客
    2018-7-5

    参考了一些其他人写的一些关于安装配置OpenLDAP的文章,于是乎手痒痒也自己动手...17 打开Web UI并登录LDAP阅读更多 版权声明:本文为博主原创文章,如需转载,请...

    LDAP学习及服务器的搭建
     qq_15117745

     2.2万

    上星期被要求去项目支援,丫的到月份了,人都跳光了。 还得先学习,LDAP??  一个集团的人员管理系统,70几万人几十个应用服务的SSO单点关联操作,好像很牛的样子。。。 参考文档: 1...

    LDAP基本介绍
     XiaoqiangNan

     3756

    1. LDAP介绍 4 1.1. LDAP是什么 4 1.2. LDAP是电话簿 4 1.3. LDAP是不是数据库 4 2. LDAP的特点 5 2.1. LDAP的优势 5 2.1.1...

    【LDAP】简介
     Sheldon74

     146

            LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。它是基于X.500标准的,但是简单多了并且可以根...

    LDAP
     an_zhenwei

     3201

    http://blog.csdn.net/chong232/article/details/2267739 http://blog.itpub.net/post/7928/88112 ht...

    cdh hadoop 集群集成 ldap
     xiaoyutongxue6

     99

    本文主要记录 cdh hadoop 集群集成 ldap 的过程,这里 ldap 安装的是 OpenLDAP 。LDAP 用来做账号管理,Kerberos作为认证。授权一般来说是由应用来决定的,通过在 ...


    Ldap日常用的命令详解
     aliaichidantong

     108

    一、ldapadd-x    简单认证-D    绑定服务器的DN-h    目录服务地址-w    绑定DN密码-f    使用ldif文件进行添加例如:ldapadd -x -D &quot;cn...

    LDAP是什么?
     gotohbu

     2万

    LDAP是什么?首先LDAP是一个轻量级的产品(LightWeight),是一个Directory(D),存取的协议(Access Protocol)。 我要着重指出,LDAP是一个数据库,但是又不是...

    LDAP阶段性小结
     caidimin

     542

    经过几天的琢磨,利用LDAP实现用户共享的任务初步实现。 LDAP相关简介:     1、快速响应和大容量查询并且提供多目录服务器的信息复制功能,它为读密集型的操作进行专门的 优化。因此,当从LDA...

    LDAP详解
     porcupinefinal

     2.5万

    LDAP详解                      什么是LDAP? LDAP的英文全称是Lightweight Directory Access Protocol,一般都简...

    LDAP介绍
     moneyding

     1098

    一. LDAP介绍1. LDAP能做什么大多数的LDAP服务器都为读密集型的操作进行专门的优化。因此,当从LDAP服务器中读取数据的时候会比从专门为OLTP优化的关系型数据库中读取数据快一个数量级。也...


    LDAP基础知识整理
     zhangyang0402

     1.6万

    一、概述LDAP:Lightweight Directory Access Protocol  轻量级目录访问协议LDAP协议基于X.500标准, 与X.500不同,LDAP支持TCP/IP, 是跨平...

    LDAP 与各系统的集成
     flyoxs

     6852

      PAM 模块的LDAP 配置 使用 PAM 进行验证的系统有: Linux 系统登录:etc/pam.d/system.auth SSH vsFTP PAM 的 LDA...

    LDAP账户验证
     M_drm

     243

    LDAP 最近使用一个 LDAP 来验证用户,初步发现了一些技巧,特此记录一下。 基础概念 先来了解一下每一层目录的说明 import javax.naming.Context...

    ldap 修改密码方案
     hehexiaoyou

     7609

    微软官方给出的ldap修改密码方案:         密码存储在 Active Directory 用户中的对象的unicodePwd属性。可以在有限的情况下,写入此属性,但无法读取。该特性只能...

    介绍LDAP
     romans1981

     1477

    如果你在计算机行业工作,那么对LDAP可能早有耳闻了。想深入地了解LDAP吗?那么可以好好地读一下这篇文章。这篇介绍性的文章是一系列介绍如何在企业中设计、实现和集成LDAP环境的文章的头一篇。主要是先...


    LDAP 中 CN, OU, DC 的含义
     educast

     2.3万

    1、 LDAP的存储规则 区分名(DN,Distinguished Name) 和自然界中的树不同,文件系统/LDAP/电话号码簿目录的每一片枝叶都至少有一个独一无二的属性,这一属性...

    OpenLDAP学习笔记
     garyichgo

     2304

    LDAP协议         目录是一组具有类似属性、以一定逻辑和层次组合的信息。常见的例子是通讯簿,由以字母顺序排列的名字、地址和电话号码组成。 目录服务是一种在分布式环境中发现目标的...

    LDAP是什么?Php如何操作LDAP
     EKingYan

     1468

    Php如何操作LDAP2.1 Php如何与LDAP连接和关闭$ds=ldap_connect("ServerName")Serv...

    Linux下LDAP Server/Client配置 --OpenLDAP
     hitabc141592

     6.6万

    OpenLDAP 在Linux上的配置与使用

    LDAP权限配置
     niu870781892

     9686

    简介:  您是否曾经设法与某个使用不同数据格式的人共享您的联系人列表,或者设法将您的地址簿迁移到另一个应用程序?如果是这样的话,您知道这是件令人头痛的事。导入和导出方案(如果它们确实存在)通常很笨拙而...


    LDAP API
     linnet2000

     4496

    LDAP  API 介绍这篇文档定义了 LDAP API (C语言版)。它使用方便,功能强大,大致内容有以下几个方面:简单浏览LDAP模型应用程序怎样使用API去获取LDAP信息详细介绍API 调用函...

    后台经验分享:如何做权限管理系统设计?
     k7Jz78GeJJ

     2.1万

    作者:橘子洲头 全文共 2210 字 5 图,阅读需要 6 分钟 ———— / BEGIN / ———— 在人人都是产品经理的网站上蛰居了4年,学习了四年,由于最近的工作方向偏向...

    完整的权限管理系统,你有这样完整权限的设计吗?
     liangyixin19800304

     5103

    很多人都知道以角色为基础的权限管理设计(RBAC),但是大部分人似懂非懂,不知道完整的权限管理系统都包括哪些内容。    在此以权限管理的使用场景来说明一下完整的权限管理内容。       一...

    LDAP 认证(Windows)
     u011012932

     3386

    LDAP(Lightweight Directory Access Protocol - 轻量级目录访问协议)是一种目录服务协议,运行在 TCP/IP 栈之上的一层。它提供了一种用于连接、搜索、和修改...

    Linux下安装openldap 启动及配置一站式搞定
     hq3595

     5731

    外链:Tomcat+LDAP完成认证:http://my.oschina.net/xpbug/blog/198765 1、安装Berkeley DB wget http://downl...


    Ldap Api
     baidu_18607183

     1643

    Java6.0 API for LDAP概述  从JDK5.0开始,对LDAP协议的数据访问操作就被集成在javax的扩展API包中,并随同JDK一并发布,这一章节,我们主要介绍API包中的类信...

    通过一个简单的例子,介绍如何使用LDAP(转)
     zmxj

     5198

    定制目录的对象类型你可以用LDAP存储各种类型的数据对象,只要这些对象可以用属性来表示,下面这些是可以在LDAP中存储的一些信息:l 员工信息:员工的姓名、登录名、口令、员工号、他的经理的登录名,邮件...

    LDAP服务器的概念和原理简单介绍
     mawming

     5629

    转自http://www.open-open.com/lib/view/open1426834264554.html 1. 目录服务 目录是一个为查询、浏览和搜索而优化的专业分布式数据...

    启动OpenLDAP的命令
     chancein007

     2483

    1. source local.file 2. cd /usr/local/openldap/libexec 3../slapd -d 1 4.ifconfig 获取LDAP的服务器地址。 ...

    ldap 的启动和停止
     yjier

     4743

    运行SLAPDslapd被设计为可以作为一个单独的服务器运行。这允许服务器充分的利用缓存,利用底层数据库的特性来管理并发,并且节省系统资源。从inetd(8)来运行slapd(8)不能作为选项。1、 ...


    LDAP与AD
     qq_27376871

     1.1万

    LDAP是轻量目录访问协议(LightweightDirectory Access Protocol)的缩写, LDAP标准实际上是在X.500标准基础上产生的一个简化版本 AD是...

    基于ldap实现的统一用户代码
     qq_27384769

     323

    基于ldap实现的统一用户代码https://github.com/csy512889371/learndemo/tree/master/ctoedu-ldapLDAP说明LDAP是轻量目录访问协议(...

    LDAP - 数据存储的一种思考方式
     lucifer821031

     5220

    (1) 什么是LDAPLDAP, Lightweight Directory Access Protocol, 轻量级目录访问协议,是X.500协议的简化版本。LDAP的规范为RFC 2251(ftp...

    LDAP目录树的结构(转)
     zmxj

     7800

    LDAP目录以树状的层次结构来存储数据。如果你对自顶向下的DNS树或UNIX文件的目录树比较熟悉,也就很容易掌握LDAP目录树这个概念了。就象DNS的主机名那样,LDAP目录记录的标识名(Distin...

    LDAP服务原理详解(原创)
     jbgtwang

     3539

    Directory Services(目录服务) 我们知道,当局域网的规模变的越来越大时,为了方便主机管理,我们使用DHCP来实现IP地址、以太网地址、主机名和拓扑结构等的集中管理和统一分配。同样,...


    LDAP c API
     seraphsky

     2730

    LDAP  API 介绍这篇文档定义了 LDAP API (C语言版)。它使用方便,功能强大,大致内容有以下几个方面:简单浏览LDAP模型应用程序怎样使用API去获取LDAP信息详细介绍API 调用函...

    在Python中使用LDA处理文本
     Real_Myth

     1.3万

    [翻译] 在Python中使用LDA处理文本 发表于2个月前(2016-02-17 16:10)   阅读(78) | 评论(0) 1人收藏此文章, 我要收藏 赞0 4月23日,武汉源创会火热...

    如何利用OpenLDAP工具管理并使用LDAP Server
     zstack_org

     4775

    提供:ZStack云计算 内容介绍如果对于相关工具以及LDAP所要求的信息及方法不太熟悉,LDAP系统的管理工作往往难度较高。在本教程中,我们将探讨如何利用由OpenLDAP团队开发的相关工具与LDA...

    ldap的增删改查基本操作
     lost_wen

     1218

    public class Factory { private static Ldap instance; public synchronized static Ldap creatI...

    ldap服务器搭建——ldap_bind: Invalid credentials (49)错误解决
     LClansefengbao

     1.4万

    在配置ldap服务器时,遇到了几次Invalid credentials (49)错误,折腾了很久才搞定,现在把个人经验写下来,以免其它仁兄少走弯路 1、出现该问题的其中一个原因就是sldap.con...


    ldap 身份验证的通用步骤
     qq_37675827

     3325

    和利用数据库进行验证类似,LDAP中也是利用登陆名和密码进行验证,LDAP中会定义一个属性password,用来存放用户密码,而登陆名使用较多的都是mail地址。那怎么样才能正确的用LDAP进行身份验...

    OpenLDAP初学习
     jiujiuming

     571

    LDAP入门学习 LDAP:LDAP是轻型目录访问协议,实现提供被称为目录服务的信息服务。目录服务是特殊的数据库系统,其针对读取、检索、浏览进行特定优化。LDAP目录是按照树型结构组织的,具体信息存储...

    没有更多推荐了,返回首页

    个人资料

    翟木木

    关注
    原创
    1
    粉丝
    0
    喜欢
    1
    评论
    0
    等级: 访问: 564 积分: 16 排名: 229万+

    归档
    2017年10月 1篇
    热门文章
    LDAP入门学习
    阅读量:534


    联系我们
    客服
    请扫描二维码联系客服
    webmaster@csdn.net

    400-660-0108

    QQ客服 客服论坛

    关于招聘广告服务 网站地图

    ©2018 CSDN版权所有 京ICP证09002463号

    百度提供支持

    经营性网站备案信息

    网络110报警服务

    中国互联网举报中心

    北京互联网违法和不良信息举报中心


    1


    写评论

    目录

    收藏

    微信

    微博

    QQ

    展开全文
  • LDAP 入门教程

    2013-06-14 17:33:21
    公司要用到LDAP同步等功能开发,所以恶补了下LDAP服务器的相关介绍和一些定义,加上自己的理解,总结出这个ppt,希望对入门的你有帮助
  • LDAP入门知识

    2012-06-12 09:44:52
    讲述Ldap的基本概念,和相关字段的含义,适合初学者。
  • 开发ldap入门

    2011-12-15 00:25:27
    LDAP入门
  • 關於LDAP的查詢:1、查询种类:A、(objectCategory=computer)B、(objectCategory=group)C、(objectCategory=user)D、(&(objectCategory=person)(objectClass=user))E、(objectcategory=contact)2、语法基础=----...

    關於LDAP的查詢:

    1、查询种类:

    A、(objectCategory=computer)

    B、(objectCategory=group)

    C、(objectCategory=user)

    D、(&(objectCategory=person)(objectClass=user))

    E、(objectcategory=contact)

    2、语法基础

    =---------------------(EQUALTO)等于

    eg:(givenName=Wendy)

    &-----------------------(logicalAND)和

    eg:(&(givenName=Wendy)(l=Q13000000))

    !-------------------------(logicalNOT)非

    eg:(!givenName=Wendy)

    *----------------------(wildcard)通配符

    eg:(givenName=We*)

    |---------------OR或者

    eg:(|(l=Q1300)(l=Q1200))

    eg:(&(givenName=Wen*)(|(l=Q1300*)(l=Q1200*)))

    ◆查找被disable的user(拥有信箱)

    (&(msExchUserAccountControl=2)(!msExchMasterAccountSID=*))

    ◆查询被disable的用户(所有)

    (&(objectCategory=person)(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=2))

    ◆查询有描述的计算机

    (&(objectCategory=computer)(description=*))

    ◆查询有描述的组

    (&(objCategory=group)(description=*))

    ◆查询所有的组-----开头为PCQ或者PSH

    (&(objectCategory=group)(|(cn=PSH*)(cn=PCQ*)))

    ◆查询所属于群组的用户

    (&(objectCategory=user)(|(memberOf=CN=Pin,OU=Pry,OU=Function,OU=Groups,DC=WEN,DC=COM)(memberOf=CN=PP,OU=Pry,OU=Function,OU=Groups,DC=WEN,DC=CORM)))

    1、查询logonscript路径不是wendy.vbe的用户:

    (&(!scriptPath=wendy.vbe)(objectCategory=user))

    2、查詢被disabled的計算機

    (&(objectCategory=person)(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=2))

    3、查詢時間戳早於2012年7月30日的電腦

    (&(objectCategory=computer)(lastLogonTimestamp<=129880800000000000))

    4、查询最后一次修改密码时间小于我们要查询的时间以及最后一次修改密码时间不为0的用户

    (objectcategory=user)(objectclass=user)(!pwdlastset<=0)

    (如果用户pwdlastset属性为0,说明用户属性中勾选了“下一次登录必须修改密码”的选项)

    一、参考:细说LastLogonTimeStamp

    LastLogonTimeStamp的值会在所有域控制器间复制。所以管理员只要从一个域控制器上就能得到用户上次登录的信息。

    二、参考:LastLogonTimeStamp的值的计算方法

    2012年7月30對應于129880800000000000

    在活動目錄中存儲的時間戳和我們日常使用的時間戳是不一樣的,是從1601年1月1號開始所經過的100纳秒的个数,比如修改密码时间的属性lastpwdset,用户最后一次登录认证的属性lastlogon都是以这种形式来存在的

    例如:我们要把2012年7月30日0时转换为活动目录时间戳

    首先我们要计算从从1601年1月1号0时到2012年7月30日0时所经过的秒数。这个我们通过工具来计算

    31ce79f9407704acb889bcdf01648fe5.png

    如上图,通过这个网站可以计算出他们之间所经过的秒数为:12988080000秒

    之后再把单位转换为纳秒

    最后转换为活动目录时间戳

    好了,得到的一串数字就是活动目录时间戳,我们来验证一下是否正确,看是否能把它转换成标准时间,转换会标准时间就比较简单了,通过windows自带的命令就可以做到

    84c2a7878ceadc720ff3bf6b6354ae24.png

    看图中说明我们的时间戳已经转换过来了

    PS:由于使用这个命令转换出来的时间为GMT时间格式,

    他会自动根据我们当前计算机的时区再做一次计算,得出2013/6/18:00:00的时间,

    因为我们转换前活动目录时间戳的时区就是我们当前的时区,所以可以忽略掉他自动转换的时区。

    展开全文
  • 1、LDAP入门

    2019-12-05 16:27:52
    转载https://blog.csdn.net/ljheee/article/details/78746037#commentBox
  • Ldap入门教程介绍

    2011-07-22 15:53:49
    ldap的基础教程,讲述了什么是ldap,及ldap的基础语法
  • ldap入门相关知识

    2010-10-09 16:41:02
    轻量级目录访问协议,LDAP入门知识,可以帮助一些有兴趣学习ldap的求知者初步了解ldap。
  • ldap入门学习资料

    2010-11-02 15:29:32
    ldap入门学习资料,是公司内部发放的,还不错。
  • ref:LDAP入门

    2018-07-03 11:24:00
    LDAP入门 首先要先理解什么是LDAP,当时我看了很多解释,也是云里雾里,弄不清楚。在这里给大家稍微捋一捋。 首先LDAP是一种通讯协议,LDAP支持TCP/IP。协议就是标准,并且是抽象的。在这套标准下,AD(Active ...
  • ldap入门

    2012-03-15 14:51:08
    String ldapHost = "ldap://ldapHostName:389"; // ldap host + port number String DN = "OU=Software,OU=China,DC=yinghua,DC=com,DC=cn";//OU组织树,DC域名   Properties props = new...
  • spring boot集成ldap

    2018-01-22 16:45:08
    项目中使用spring boot框架集成了ldap协议的方法,调用了增删改查的API,基本实现了spring boot对于ldap的所有方法,只要搭建好了ldap服务器,改一下配置文件即可运行。
  • Ldap入门

    2012-03-20 21:29:09
    LDAP常用术语解释:DN:distinguished name。在LDAP目录中的所有记录项都有一个唯一的DNCN,OU,DC都是LDAP连接服务器的端字符串中的区别名称;LDAP连接服务器的连接字串格式为:ldap://servername/DN 其中DN有三个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,488
精华内容 2,195
关键字:

ldap入门