Java LDAP介绍_第1页
Java LDAP介绍_第2页
Java LDAP介绍_第3页
Java LDAP介绍_第4页
Java LDAP介绍_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 Java LDAPJava LDAP 1 什么是 LDAP LDAP Lightweight Directory Access Protocol 轻量级目录访问协议 是 X 500 协议的简化 版本 LDAP 的规范为 RFC 2251 ftp ftp isi edu in notes rfc2251 txt The Lightweight Directory Access Protocol v3 Microfost 的 Active Directory Lotus 的 Domino Directory IBM 的 WebSphere 都是 LDAP 的实现 LDAP 的开源实现是 OpenLDAP LDAP 由以下几部分组成 LDAP 协议 一个标准的 可扩展的 Internet 目录访问协议 使用目录的四种模型 信息模型 信息如何存储 命名模型 如何安排和引用目录数据 功能模型 如何操作数据 安全模型 如何进行访问控制 LDIF LDAP Data Interchange Format 标准的交换目录数据的文本格式 LDAP 服务软件 和 LDAP 服务软件捆绑在一起的命令行工具和基于 LDAP 的应用程序 LDAP 编程 API 用于开发 LDAP 客户应用程序 2 LDAP 协议 客户端发起一个请求消息 请求 LDAP 服务器的某条目录信息 该请求包含唯一的消息 ID 如下图 服务器收到该请求后 返回客户需要的信息 然后在一条独立的消息中返回结果代码 客户端也可以在一条消息中请求多条目录信息 服务器依次返回这些目录条目 并在最 后一条消息中返回结果代码 如下图 2 客户端还可以同时发出多条请求消息 服务器响应这些请求 响应中包含请求消息 ID 如下图 False LDAP 协议的操作分为三大类 查询操作 search compare 更新操作 add delete modify modify DN rename 认证和访问控制 bind unbind abandon 下图是一个典型的 LDAP 协议操作过程 I 客户端向 LDAP 服务器打开 TCP 连接 提交一个 bind 操作 该操作包含客户用来炎症 的目录条目 以及验证凭据 通常为口令或者证书 3 II 服务器验证成功后返回成功结果给客户 III 客户端发起 search 请求 IV V 服务器处理请求 返回两条结果 VI 服务器发送结果代码 VII 客户端发起一个 unbind 请求 VIII 服务器关闭连接 BER Basic Encoding Rules 与系统无关的紧凑性数据编码规则 用于编码整数 字符串 等数据类型 SNMP 采用了这种数据编码规则 LBER Lightweight BER LDAP 使用的 一种简化的 BER 编码规则 可见 LDAP 在网络上传输的数据是非文本的 这和 HTTP 协议及 SMTP 协议有所不同 3 LDAP 命名模型 LDAP 有两种命名方式 传统的命名方式和基于 Internet 的命令方式 下图展示了这两种 方式 4 传统的命令方式 Internet 命名方式 在命令模型中 有两个重要的概念 DN Distinguished name 节点引用的唯一名称 比如 uid babs ou People dc example dc com RDN Relative Distinguished Name 相对的节点名称 比如 uid babs 4 LDAP 信息模型 LDAP 存储信息的基本单位是 Entry 一个节点为一个 Entry 每个 Entry 有一套 Attributes 每个 Attribute 有 Type 和一个或者多个 Values Type 有语法规则 哪些值才能赋给这种类型的属性 和匹配规则 匹配规则由比较规则和排序规则组成 比如 caseIgnoreMatch 和 integerMatch Entry 的属性是由 Schema 来定义的 5 LDAP 功能模型 5 这里只介绍搜索 其他部分参考后文 在 LDAP 的搜索中 共有 8 个选项 Base Object 搜索的起始根路径 Search Scope 分三类 base 只检索 Base Object onelevel 检索 Base Object 下面的第一 层目录 sub 检索从 Base Object 开始的所有下层目录 Dereferencing 选项 是否解除别名节点的引用 Size Limit 返回的 Entries 的数目 0 为不限制 Time Limit 0 为不限制 Attribute Only 参数 true 指示只返回属性类型 否则类型和值都返回 Search Filter 搜索过滤条件 要求搜索返回的属性列表 默认为都返回 6 LDAP 安全模型 Bind 操作把 DN 和用户口令传给 LDAP 服务器进行认证 LDAP 服务器检查 DN 对应的 userPassword 属性是否和用户提供的口令一致 这种认证可用 TLS LDAPv3 保护 也可 选用 SASL 认证 Unbind 操作断开和 LDAP 服务的连接 Abandon 操作把 Message ID 发 给 LDAP 服务器 丢弃已经初始化的 LDAP 操作 7 LDIF 文件格式 LDIF 按作用可分为两大类 添加数据类和更新数据类 以下为一个典型的添加数据类的 格式 dn dc example dc com objectclass dcObject objectclass organization o example dc example dn cn Manager dc example dc com objectclass organizationalRole cn Manager dn ou People dc example dc com objectclass top objectclass organizationalUnit 6 ou People dn uid yingyuan ou People dc example dc com objectClass Top objectClass Person objectClass OrganizationalPerson objectClass InetOrgPerson uid yingyuan cn Yingyuan Cheng sn Cheng userPassword yingyuan mail yingyuan description A little little boy living in the big big world jpegPhoto 9j 4AAQSkZJRgABAAAAAQABAAD 2wBDABALDA4MChAODQ4 SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnP 需要注意的地方是 续行的时候第一个字符必须为空格 如果属性值是 Base64 编码的 必须要有两个冒号 数据更新有好几种情况 仅仅为数据添加的方式比如 dn uid bjensen ou people dc example dc com changetype add objectclass top objectclass person 数据删除比如 dn uid bjensen ou people dc example dc com changetype delete 文章整理文章整理 学网学网 本站 1 2 3 4 5 数据修改比如 7 dn uid bjensen ou people dc example dc com changetype modify add telephoneNumber telephoneNumber 1 216 555 1212 dn uid bjensen ou people dc example dc com changetype modify delete telephoneNumber telephoneNumber 1 216 555 1212 dn uid bjensen ou people dc example dc com changetype modify replace telephoneNumber telephoneNumber 1 216 555 1212 telephoneNumber 1 405 555 1212 dn uid bjensen ou people dc example dc com changetype modify add mail mail bjensen delete telephoneNumber telephoneNumber 1 216 555 1212 delete description 后一个例子把集中更新操作放在一个文件里 此外更新操作还有目录的移动和重命名 比如 dn uid bjensen ou People dc example dc com changetype moddn newsuperior ou Terminated Employees dc example dc com dn uid bjensen ou People dc example dc com changetype moddn 8 newrdn uid babsj deleteoldrdn 0 8 LDAP 命令行实战命令行实战 搜索主机 范围为 dc example dc com 以及其子目录 过滤条件为 cn Barbara Jensen ldapsearch h s sub b dc example dc com cn Barbara Jensen 仅搜索基目录 过滤条件为所有类 ldapsearch h s base b uid bjensen ou people dc example dc com objectclass 搜索用户为 uid bjensen ou people dc exampe dc com 口令为 hifalutin ldapsearch h localhost D uid bjensen ou people dc example dc com w hifalutin s sub b dc example dc com cn Barbara Jensen 仅返回 mail roomNumber 属性 ldapsearch h localhost s sub b dc example dc com cn Barbara Jensen mail roomNumber 返回所有属性和操作属性 ldapsearch h localhost s sub b dc example dc com cn Barbara Jensen modifiersName modifyTimeStamp 过滤条件为或连接 ldapsearch h localhost s sub b dc example dc com L cupertino L sunnyvale 9 过滤条件为复合条件 ldapsearch h localhost s sub b dc example dc com L cupertino L sunnyvale objectclass person 从 ldif 文件中更新数据 updates ldif 含 changetype ldapmodify h D cn directory manager w secret updates ldif 从 ldif 文件中添加数据 不含 changetype ldapmodify h D cn directory manager w secret a updates ldif 更新数据的过程中如果遇到错误则继续 c 并把错误写入 rejects ldif 文件 e rejects ldif ldapmodify h D cn directory manager w secret c e rejects ldif updates ldif 9 LDAP 编程编程 API ldap search Searches for directory entries ldap compare Tests whether an entry contains a given attribute value ldap bind Authenticates proves your identity to a directory server ldap unbind Terminates an LDAP session ldap modify Makes changes to an existing directory entry ldap add Adds a new directory entry ldap delete Deletes an existing directory ent

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论