轻型目录访问协议 教程

轻型目录访问协议 教程

轻型目录访问协议
(LDAP)介绍

研究生园地

高能物理所计算中心
石京燕
内容
 目录服务概述
 LDAP介绍
 LDAPv3扩展
 目录服务的设计
目录服务概述
 目录服务是一个特殊的数据库,用来保存描述性的,基于属性的详细信息,还支持过滤功能。
 目录是动态的,灵活的,易扩展的。
 例子:电话簿,地址簿,用户目录
内容
 目录服务概述
 LDAP介绍
 LDAPv3扩展
 目录服务的设计

LDAP介绍
 什么是LDAP?
 LDAP协议
 LDAP模型
 LDIF
 LDAP服务器软件
 LDAP Command-Line Utilities
 LDAP APIs

 


什么是LDAP
 LDAP(Lightweight Directory Access Protocol)代表轻量级目录访问协议。用于访问目录服务的一个标准,可扩展的internet协议。部分基于X.500标准,但更简单,更精炼,可扩展性更好。与其他某些通信协议相比,它是轻量级的。
 四个模型:信息模型、命名模型、功能模型、安全模型
 信息被集中存储在服务器上的LDAP目录中。数据按层次树状结构存储;
 信息模型是以条目(entry)为基础,一个条目是属性的集合,并具有全局唯一 DN(Distinguished Named),用来唯一标识。每一个条目的属性具有一个类型和一个或者多个值。

什么是LDAP(续)
 LDAP Data Interchanged Format(LDIF):目录数据的基本格式
 LDAP服务器:商业和开放软件
 基于LDAP应用和LDAP服务器的应用程序
 LDAP应用程序接口(API):用于客户端程序的开发

LDAP协议
 A message-oriented protocol

典型的LDAP数据交换
LDAP模型-信息模型
 条目,属性和值
– 基本信息单元是条目,它是一个对象的信息集合,每个条目有一个DN。
– 属性类型是由相关的语法和匹配规则的。
– 管理员可以设定某一属性是否有多个值。
LDAP模型-信息模型(续)
Part of a Typical Directory
LDAP模型-命名模型
 如何组织及定义数据。
 将条目规划为一个树状结构。
 例如:按地理位置,组织部门等划分
LDAP模型-功能模型
 三组操作:
– Interrogation Operations:查找和恢复数据
– Update Operations: 增加,删除,重命名等
– Authentication and control: 加密,认证等
LDIF
 可以实现数据的导入、导出
 可以实现数据的修改:增加,修改,重命名条目
dn: uid=shijy,ou=cc,dc=ihep,dc=ac,dc=cn
changetype: add
objectclass:top
objectclass:person
un: Shi jingyan
uid: shijy
mail: [email protected]
:
:
LDAP Server 软件
 Openldap
 Netscape Directory Server ns-slapd
 IBM Security Server


LDAP Command-Line Utilities
 功能强大的ldapsearch
 查找条目
 认证
 查找某些属性
 用ssl查找条目
 其他:过滤功能
ldapsearch –h localhost –D “cn=Manager,dc=ihep,dc=ac,dc=cn” –W –b “dc=ihep,dc=ac,dc=cn”
Ldapmodify: 与ldapsearch类似
LDAP APIs

 

 

 LDAP C API :
 ldap_search()  ldap_compare()
 ldap_bind()    ldap_unbind()
 ldap_modify()  ldap_add()
 ldap_delete()   ldap_rename()
 ldap_result()
内容
 目录服务概述
 LDAP介绍
 LDAPv3扩展
 目录服务的设计

LDAPv3扩展的方面
 三方面:
– ldap控制,
– ldap扩展操作,
– SASL认证

LDAP控制
 LDAP控制
– 对ldap操作加一些额外的控制信息。
– 例如:Server- Side Sorting control
– 一个操作上可以使用多个控制
LDAP扩展操作
 增加一些ldap操作,扩展操作包含一个OID用来唯一标识
– 例如:netscape定义了扩展操作,可以大批量修改数据
Sasl认证
 Simple Authentication and Security Layer(SASL)是一个认证框架,支持多个认证协议,例如:Kerberos v5, DIGEST-MD5等等
内容
 目录服务概述
 LDAP介绍
 LDAPv3扩展
 目录服务的设计

目录服务的设计
 目录设计概述
 定义目录需求
 数据设计
 Schema设计
 安全问题
目录设计概述
 目录的生命周期:
– 设计阶段:环境,用户,数据源,应用等信息
– 开发阶段:开发应用服务,系统的可靠性,冗余性,性能测试,容错性等
– 维护阶段:数据更新,系统维护等

定义目录需求
 第一步:分析环境
– 组织结构,系统,网络环境,应用软件,用户,管理员。。。
 第二步:决定需求优先级
– 应用需求:保证应用可以正确高效执行
– 用户需求:考虑使用目录的所有用户需求
– 开发限制:用户习惯,资源限制(钱、时间。。)
– 其它环境限制:网络环境,硬件,软件。。。。
定义目录需求(续)
 第三步:选择全局的目录开发软件
 第四步:设定一些目标和里程碑
数据设计
 数据设计概述
 数据相关问题
 建立数据策略
 标识所需数据元素
 数据源

数据设计概述
 数据如何存储在LDAP目录中及数据间的相互关系
 一个例子:
数据相关问题
 太多信息
 太少信息
 不正确的格式
 过期的信息
 冗余的数据
要求设计者仔细考虑及与数据所有者及时沟通
建立数据策略
 存储哪些数据的方针
 访问目录数据的方针
 修改目录数据的方针
 法律的考虑
 在多处存储数据的方针
 出现运行错误后的处理方针
数据元素的特征
 数据元素的一般特征:
– 格式
– 数据值的尺寸
– 一个元素拥多个有数据值的数目
– 数据所有权和限制
– 数据值改变的频率
– 与其他数据的关系


数据源
 其它目录服务
 网络操作系统
 数据库
 电子格式的文本文件
 应用
 软件
 最终用户
数据源关系的维护
 复制:LDAP Duplication / Replication / Update Protocol group Internet Engineering Task Force (LDAP IETF)标准提供LDAP-LDAP的复制
 同步化:集成于目录软件或是单独工具
 批处理:
Schema 设计
 Schema的目的
 Schema的元素
 目录Schema格式
 已有的schema


Schema的目的
 Schema是目录中存储数据的规则集合
 决定目录存放什麽,及server和client如何操作
 设置数据的尺寸、取值范围、数据值的格式
 防止数据混乱
Schema的元素
 属性类型,语法,匹配规则,对象类
 属性的OID来自X.500协议组。
– 例:postalAddress的属性为2.5.4.16
 Schema 的一个例子:
 (2.5.4.13 NAME 'description' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024} )
 属性名为description是字符串,长度为1024,caseIgnoreMatch指其值可忽略大小写,OID为2.5.4.13,语法规则为1.3.6.1.4.1.1466.115.121.1.15
Schema元素(续)
 Schema支持subtype
 Subtype继承supertype的特性
Schema元素(续)
 属性的语法
. Standard Syntaxes

Schema元素(续)
 匹配规则

Schema元素(续)
 Object class
– 每个目录条目属于一个或多个对象类
 决定条目中必须有的属性
 决定条目中可能有的属性
 提供搜索功能的过滤

Schema元素(续)
 Schema总结

已有的schema
 标准的schema
– LDAP standards documents
– X.500 standards documents
– Industry consortium standards
安全问题
支持匿名:可以通过设置访问控制允许匿名用户只读
支持简单口令:通过网络发送简单口令
支持SSL/TLS
支持口令加密:KERBEROS_v4,RSA…
支持证书认证
访问控制(access control)
 可以将访问控制设置到属性级
 可以将访问控制设置到某一个子树
 可以将访问控制设置到某一个组
 每个访问控制定义三个事情: 
– 目录中的一个或多个对象
– 一个或多个客户机访问对对象
– 一个或多个访问权限

访问控制的例子
 例:
Aci:(target =“ldap:///dc=example,dc=com”)
(targetattr=“cn||sn||givenName||middleinitial||name”)
(version 3.0; acl “Anonymous read-search access”;allow (read, search,compare) userdn=“ldap:///anyone”;)
 例:
Aci:target=“ldap:///dc=example,dc=com”)
(targetattr=“salary”)
 (version 3.0; acl “allow manager access to salary”; allow (read, write) userdnattr=“manager”;)

谢谢!

 

你可能感兴趣的:(轻型目录访问协议 教程)