如何熟悉openldap的基础知识?

OpenLDAP

1 openLDAP的简介

1.1 目录服务的概念

– 目录是用于搜索和浏览的专用数据库(另外还支持查找与更新功能)
– 目录一般包含属性的描述信息
– 目录支持复杂的过滤筛选功能
– 目录能快速响应高容量的查找或搜索
– 目录通常不支持复杂的事务或回滚
– 目录使用复制的方式实现高可用或高可靠性(可缩短响应时间,需要解决一致性问题)

1.2 LDAP的概念

– LDAP是轻量级目录访问协议的简称,即Lightweight Directory Access Protocol
– LDAP运行于TCP/IP或其他面向连接的协议之上
– LDAP是IETF标准跟踪协议
– LDAP由轻量级目录访问协议技术规范线路图(RFC4510)规范

1.3 OpenLDAP的简介

– OpenLDAP是轻型目录服务
– OpenLDAP是LDAP协议的自由和开源的实现
– OpenLDAP被包含在众多的Linux发行版中

2 理解LDAP

2.1 LDAP的信息模型

– LDAP的信息模型是基于条目,条目以分层数状的结构排列
– 条目是具有全局唯一性的属性集合,简称DN(类似于对象的概念)
– DN用户明确地指定一个唯一的条目(类似于对象的ID)
– 每个条目可定义属性的类型和值(类似于对象的属性)

2.2 LDAP如何使用条目表达从属关系

2.2.1 组织机构的表达范例


如上图所示,
– 用属性“c”表达一个国家,例如属性的值是“US”或“GB”
– 用属性“st”表达从属某个国家的省,例如属性的值是“California”
– 用属性“o”表达从属某个省的组织机构,例如属性的值是“Acme”
– 用属性“ou”表达从属某个组织机构的职业类型,例如属性值是“Sales”或“Marketing”
– 用属性“cn”表达从属某个职业的人,例如属性值是“Barbara Jenson”

2.2.2 域名的表达范例


如上图所示,
– 第一层用属性“dc”表达顶级域,例如属性的值是“net”或“com”或“DE”
– 第二层用属性“dc”表达从属于顶级域名的二级域,例如属性的值是“example”
– 第三层用属性“ou”表达从属于二级域的经过分类的对象,例如属性的值是“People”和“Servers”
– 第四层用属性“uid”表达从属于“People”的某个用户ID,例如属性的值是“babs”

3 LDAP的使用场景

– 机器认证
– 用户认证
– 用户/系统组
– 地址簿
– 组织代表
– 资产追踪
– 电话信息存储
– 用户资源管理
– 电子邮件地址查找
– 应用配置的存储
– PBX配置的存储
– 其他适用的应用

4 LDAP的架构模型

– 客户端与服务器通过应答的方式获取信息
– LDAP属于CS架构(client-servr model)

5 LDAPv2与LDAPv3的区别

LDAPv3相比较于LDAPv2添加了如下功能,
– 强大的身份验证和数据安全服务(SASL)
– 证书认证和数据安全服务TLS(SSL)
– 通过使用Unicode实现国际化
– 支持Referrals和Continuations
– Schema Discovery
– 可扩展性(控件,扩展操作等)
注:请避免同时部署LDAPv2和LDAPv3,默认情况下,应该禁用LDAPv2

6 slapd的简介

6.1 slapd的概念

slapd是许多平台上运行的LDAP目录服务

6.2 slapd的功能与特性

– LDAPv3,支持LDAPv3的同时支持IPv4、IPv6和Unix IPC
– 身份验证和安全层,通过Cyrus SASL实现强身份验证和数据安全(保证数据完整和机密性,机制包括DIGEST-MD5、EXTERNAL和GSSAPI)
– 传输层安全,通过TLS/SSL支持证书身份验证和数据安全(保证数据完整和机密性,机制包括OpenSSL、GnuTLS、MozNSS)
– 拓扑控制,可根据网络拓扑限制套接字访问(使用TCP包装器实现)
– 访问控制,可根据IP地址、域名或其他标准授权对条目的访问
– 国际化,支持Unicode和语言标签
– 集成数据库后端,
— 支持MDB(分层高性能事务数据库)
— 支持BDB(高性能事务数据库,不建议使用)数据库后端
— 支持HDB(分层高性能后端,已弃用)
— 支持SHELL(支持任意的shell脚本接口)
— 支持PASSWD(password简单文件后端接口)
— 支持LMDB(Oracle的Berkeley DB高性能代替品)
– 多数据库实例,单个slapd服务可以使用相同或不同的数据库后端响应ldap不同部分的请求
– 通用模块API,可使用Perl和shell自定义模块扩展slapd(前端模块处理LDAP客户端通讯,特定任务模块处理数据等操作)
– 高性能线程,单个多线程slapd进程使用线程池来处理传入请求(提高性能同时减少系统开销)
– 目录信息复制,可配置目录复制,支持单主多从模式和多主模式
– 代理缓存,slapd支持LDAP缓存代理模式
– 高度配置,单个配置文件可控制slapd工作

7 OpenLDAP的架构

7.1 单机架构


如上图所示,
该模式是典型的CS架构,即只有一台服务为多个客户端提供服务

7.2 带推荐架构


如上图所示,
– 当Server收到Client的服务请求后可反馈一台有LDAP服务的新服务器(Superior Server)给Client
– 随后,Client与Superior Server交互LDAP应答

7.3 复制架构


如上图所示,
– Provider与Consumer之间数据存储同步关系(数据保持一致性),支持主从模式(支持多从)和多主模式
– Client即可从Provider取得服务,亦可从Consumer取得服务

7.4 分布式架构

– 类似分布式存储,目录服务被分隔存放在多台服务器上(可以是上下级关系)
– 服务器之间使用复制的方法防止单点故障

参阅文档:
==============
http://www.openldap.org/doc/admin24/intro.html#What%20is%20a%20directory%20service
http://www.openldap.org/doc/admin24/config.html
https://baike.baidu.com/item/openldap/5596398?fr=aladdin

没有评论

发表评论

OpenLDAP
如何用ldapsearch检索微软AD域?

1 前言 一个问题,一篇文章,一出故事。 今天老板提出需要使用ldapsearch工具去检索Micr …

OpenLDAP
密码保护:如何yum部署OpenLDAP Proxy Cache?

无法提供摘要。这是一篇受保护的文章。

OpenLDAP
如何配置OpenLDAP的slapd?

1 基础知识 1.1 slapd的特性 – OpenLDAP 2.3以上版本支持动态加载 …