• Open LDAP 系列1 认识Open LDAP


    一、Directory and Directory Service(目录和目录服务)

    1. 目录

    目录是一种用于存储描述性的,基于属性的,且支持复杂查询的数据结构。“描述性的”是指目录存储的数据不会太长,这与关系型数据库和No-SQL有不同;“基于属性的”这点类似于No-SQL;“支持复杂查询”类似于搜索引擎,是指查询条件和组合多样化,支持搜索,且在并发量高的情况下需要保证其查询高效性和可用性。

    总结起来,一个目录系统其实一种专门为查询而优化的数据库系统。

    2. 目录服务

    Authentication是提供目录查询和更新的服务,不过它更侧重于查询和搜索。

    二、LDAP

    1. LDAP

    LDAP的全称是Lightweight Directory Access Protocol(轻型目录访问协议),它是一种访问目录服务的协议。它主要通过TCP/IP链接与目录服务进行通信。

    2. Entry(条目)

    条目是LDAP系统的基本数据单元,类似于关系型数据库的一行数据。每个条目都是由若干属性组成,其中包含一个全局唯一的标识符Distinguished Name(DN),通过DN可以定位一个唯一的条目。属性是一种特殊的键值对的数据结构,之所以称之为“特殊”是因为这里的“键”被称为type(类型),而且这种类型被定义为英文简写,比如类型“cn”是“Common Name”的简写,“mail”是"Email Address"的简写。

    3. 条目的组织结构---DIT(Directory Information Tree)

    LDAP将各个条目按照等级区分组织成了一颗目录树。如下图所示,这是一个按照“国家-->洲(省)-->组织-->部门-->人员”结构组成的目录系统。

    此外,也可以按照域名方式来组织,如下图所示:

    上图中,uid=babs是该节点的RDN(Relative Distinguished Name),这个节点的DN是“uid=babs,ou=People,dc=example,dc=com”,这是一个从叶子节点出发追溯到根节点的名称组合,非常便于查找和理解。

    4. objectClass

    objectClass是条目的一个特殊属性,类似于关系型数据的schema,通过它可以定义一个条目哪些属性是必须的,哪些是可选的。所以,我们可以称它为“条目定义类”。

    5. 适用场景

    (1) 各种认证,例如机器认证、用户认证

    (2) 用户或系统组管理

    (3) 用户地址簿管理

    (4) 组织架构管理

    (5) 资产追踪

    (6) 电话信息存储

    (7) 用户资源管理

    等等...

    目前,国内外有许多企业使用LDAP来存储员工信息,实现内部系统的SSO和用户认证等功能。

    6. 架构

    LDAP采用了C/S架构,服务端负责存储数据并为客户端提供操作接口,服务端可以是单机也可以是集群。在集群模式下,每个服务端节点存储一部分数据,客户端可以连接任何一个服务端节点。当客户端请求数据所在的节点(Server 2)与当前连接的节点(Server 1)不一致时,服务端(Server 1)会返回目标服务端节点(Server 2)的地址。

    7. slapd

    slapd是LDAP目录服务器的daemon(守护程序),它包含以下功能:

    (1) 实现了LDAPv3协议,同时支持IPV4和IPV6;

    (2) 通过SASL(Simple Authentication and Security Layer)提供了强认证机制和数据安全策略(完整性和可信性)。slapd中的SASL使用了Cyrus SASL,后者支持许多安全机制,如:DIGEST-MD5,EXTERNAL和GSSAPI;

    (3) 同时支持TLS和SSL,目前SSL已经不够安全,已经过时;

    (4) 可选择后端数据库,包括MDB和PASSWD。此外,一个slapd实例可支持多个后端数据库;

    (5) slapd通过一个线程池来处理所有请求;

    (6) slapd通过复制模式(Replication)来确保服务的高可用性,当开启复制模式之后多个“复制”节点可同时接受写请求。slapd通过同步机制来确保各“复制”节点的数据同步。

    (7) slapd通过一个配置文件实现高可配置化,同时支持动态配置(运行期配置)。

    8. lloadd

    lloadd是LDAP目录服务器的负载均衡服务。当系统存在多个slapd实例时,lloadd可以将请求分发至不同实例以平衡每个实例的压力。

  • 相关阅读:
    二分类实现多分类
    目标检测(三) Fast R-CNN
    目标检测(二) SPPNet
    目标检测(一) R-CNN
    超参数调优
    支持向量机 SVM
    LDA 线性判别分析
    分类
    特征选择
    集成学习-Adaboost 参数选择
  • 原文地址:https://www.cnblogs.com/eagle6688/p/15971150.html
Copyright © 2020-2023  润新知