`
dingqijie
  • 浏览: 102258 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

开始学习ldap

阅读更多
刚进入公司,发现公司采用ldap对用户进行管理,今天就先从这个入手了。加油加油!!!
LDAP, X.500, and directory services密切相关。
一、ldap是什么?
   ldap是ietf的标准栈协议,是light directionary access protrol的简称;
   ldap的底层协议是x.500即dap,ldap负责的通信协议层是tcp/ip层,能够完成查询、修改、删除、添加功能。
二、名词解释
   dn:distinguished name唯一性标识名
   cn:common name
   c:country
   o:organization
   ou:organization unit
   dc:Domain Component
   以上简称可以在schema文件中找到,用的时候查看就行。
三、建立链接
    public static String INITCTX = "com.sun.jndi.ldap.LdapCtxFactory"; //驱动
public static String MY_HOST = "ldap://localhost:389"; //主机地址和端口
public static String MY_SEARCHBASE = "o=tcl,c=cn"; //基点入口
public static String MY_FILTER= "(mail=test@hotmail.com)"; //过滤条件
public static String MGR_DN="cn=manager,o=tcl,c=cn"; //用户名
public static String MGR_PW="secret"; //密码
         public static DirContext createDirContext()
{
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,INITCTX);
env.put(Context.PROVIDER_URL,MY_HOST);
env.put(Context.SECURITY_AUTHENTICATION,"simple");
         //使用简单认证来认证用户
env.put(Context.SECURITY_PRINCIPAL,MGR_DN);
env.put(Context.SECURITY_CREDENTIALS,MGR_PW);
DirContext ctx = new InitialDirContext(env); 
         return ctx
}
四、添加新的数据。
    public static void addEntry(DirContext context,String dn) throws NamingException {   
         Attributes attrs = new BasicAttributes();  
    attrs.put("sn","amy lee");
    attrs.put("cn", "AmyLee");
    attrs.put("telephoneNumber", "+1 408 555 0033");  
    attrs.put("userPassword", "redqueen".getBytes());  
    Attribute objclass = new BasicAttribute("objectClass");  
    objclass.add("person");  
    attrs.put(objclass); //指定schema为person,否则cn属性无法识别;
    context.createSubcontext(dn, attrs);//dn是要加入的新数据的完整唯一性标识;
}
五、查询数据
   public static void query()
{
         SearchControls constraints = new SearchControls();
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
NamingEnumeration results = ctx.search(MY_SEARCHBASE,MY_FILTER,constraints);

//打印查询结果
while (results != null && results.hasMore()){}

}
分享到:
评论

相关推荐

    很好的LDAP学习资料

    在开始学习LDAP之前,我们需要了解它的基本构成和工作原理。LDAP目录服务是基于树形结构的,其中每个节点代表一个对象,如用户、组、计算机、打印机等。这些对象都有唯一的标识符,称为DN(Distinguished Name),并...

    LDAP学习笔记相关资料

    LDAP学习笔记 LDAP,全称为轻量级目录访问协议,是一种用于访问和管理分布式目录服务的网络协议。它源于X.500标准,但在设计上更为轻便且可定制,支持TCP/IP通信,这对于互联网访问至关重要。目录服务主要用于快速...

    Ldap学习手册pdf版

    根据提供的文件信息,我们可以从这份名为“Ldap学习手册pdf版”的文档中提炼出与LDAP相关的知识点。以下是对这些知识点的详细阐述: ### LDAP基础知识 #### 1. LDAP简介 - **LDAP**(Lightweight Directory Access ...

    LdapBrowser282.zip

    - **浏览目录结构**:LdapBrowser提供了一个直观的界面,让用户能够浏览整个LDAP目录结构,从根DN(Distinguished Name)开始,逐层展开,查看每个条目的详细信息。 - **搜索功能**:用户可以通过输入关键字或使用...

    ldap browser

    5. **学习进阶**:了解更复杂的查询语法,熟悉LDIF(LDAP Data Interchange Format)文件格式,掌握高级管理功能。 总之,LDAP浏览器是管理和维护LDAP目录的重要工具,通过图形化界面简化了对目录服务的操作。无论...

    Go-使用Golang编写基于LDAP的Web应用程序

    要开始编写基于LDAP的Web应用程序,你需要安装Go语言环境并设置好工作区。之后,引入必要的依赖库,其中`ldap`库是用于与LDAP服务器交互的关键。你可以通过`go get`命令安装第三方的LDAP库,例如`github....

    ldap 资源 vc 编写的

    在实际开发中,理解并正确使用这些资源可以帮助开发者节省大量时间,因为他们不必从头开始编写所有LDAP操作的代码。同时,通过查看和学习示例代码,开发者可以更好地理解和掌握LDAP协议的工作原理,以及如何在C++...

    windows下ldap服务和客户端

    安装LdapBrowser后,输入LDAP服务器的地址、端口和凭据,即可开始探索和操作目录。 在Windows环境中,你可能还需要配置Active Directory(AD),这是Microsoft提供的一种集成的身份验证和目录服务。AD使用LDAP协议...

    LdapBrowser 6.10

    4. **培训与教育**:对于学习LDAP的初学者,LdapBrowser提供了实践操作的机会,加深对LDAP的理解。 ### 安装与使用 LdapBrowser-6.10.x-win-x86-Setup.msi是该软件的安装文件,适用于32位Windows系统。双击运行...

    Ldap客户端绿色安装包免安装使用

    对于初学者来说,免安装的 LDAP 客户端简化了学习和测试的过程。只需将压缩包解压到任意位置,然后双击执行文件即可开始使用。由于不涉及系统的复杂配置,这使得在多台计算机间切换或在受限环境中使用变得更为便捷。...

    Ldap客户端 2.zip

    用户下载解压后,按照提示步骤安装并启动程序,就能开始与LDAP服务器的交互。安装过程中,可能需要输入服务器的URL、端口以及认证信息,例如用户名和密码。一旦连接建立,用户就能在客户端界面上进行各种操作。 ...

    Beginners guide to LDAP.pdf

    - 这句描述进一步强调了文档是专为那些刚开始接触LDAP的读者准备的,目的是帮助他们理解LDAP的基本概念和操作。 #### 标签解析: **"guide ldap"** - 标签再次明确了文档的主要内容,即作为一份关于LDAP的指导手册...

    springldap例子

    在开始使用 Spring LDAP 之前,我们需要配置 LDAP 连接。这通常涉及到添加 Spring LDAP 相关的依赖到项目中,然后在配置文件中指定 LDAP 服务器的 URL、基础 DN(Distinguished Name)和其他连接参数。 2. **建立 ...

    在Linux上建立LDAP服务器(一步一步).doc

    通过这些知识点的学习,可以帮助读者更好地理解LDAP的功能及其实现方式,进而为实际部署和管理LDAP服务器提供指导。随着网络规模和复杂性的不断增加,利用LDAP进行集中管理和认证变得越来越重要。通过上述知识点的...

    LDAP shell-开源

    - **学习资源**:开源软件通常有丰富的文档和教程,方便初学者学习。 3. **使用步骤** - 安装Perl环境:确保系统已安装Perl运行环境,这是运行LDAP shell的基础。 - 获取源代码:从官方或可靠的源下载ldapsh的源...

    Python_GitHub安全实验室计划提供一个内部学习体验,让学习者保护有意易受攻击的代码.zip

    此外,"说明.txt"文件可能提供了关于如何开始实验、评分系统、挑战指南和解决方案的详细信息。学习者不仅需要理论知识,还需要动手实践,通过尝试修复代码中的漏洞来提升自己的技能。 总之,Python GitHub安全实验...

    GUI for qmail-ldap-开源

    5. **源代码开放**:开源意味着源代码对所有人开放,用户可以查看、学习、修改和分享代码,促进了社区协作和持续改进。 【qmail-ldap-ui-1.0.0】:这是项目的特定版本号,1.0.0通常表示软件的第一个正式发布版本,...

    John\'s LDAP Web interface-开源

    - 相较于仅提供命令行界面的工具,LDAPWeb提供了更直观的用户体验,降低了学习和使用门槛。 总结来说,LDAPWeb是一个强大且易用的开源解决方案,它将复杂的LDAP管理任务简化为Web交互,为组织提供了一种高效、安全...

    Jive源码 WAR包 以及学习资料大全

    对于初学者,你可以从理解Jive的基本架构开始,它基于Java EE平台,利用Spring框架进行依赖注入,Hibernate用于对象关系映射,而前端则采用jQuery和其他现代JavaScript库来提供丰富的用户体验。此外,学习资料可能...

Global site tag (gtag.js) - Google Analytics