通信协议_LDAP

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/du1055669885/article/details/82756612

LDAP的简介:

LDAP:Lightweight Directory Access Protocol,LDAP支持TCP/IP;

从本质上来说,LDAP是一个目录,也可以看成一个弱数据库;

目录里每个Index是一条记录,这些记录以树形结构,存储在不同的叶子上;

LDAP = OU(树) + DN[区分名(DN,Distinguished Name)叶子,每个dn独一无二];

LDAP的目的是快速响应查找需求,并不常用写<写较弱>,通常作为【统一认证解决方案】被利用;

最为成功的应用对象是Microsoft的AD(Activity Domain)域,每台设备相当于一个叶子,由管理员统一管理;

局域网应用1.单点登录(用户管理);

局域网应用2.局域网资源统一管理;

OpenLDAP的架构:

0.基于TCP/IP的应用层协议 默认端口389 加密端口636(如OpenLDAP服务进程)
1.客户端发送命令,服务器端响应

     1.0 应定义可接续客户端列表(LDAP-Clients Accesslist)
2.目录主要操作
     2.0 用户验证(bind操作)
     2.1 添加节点
     2.2 更新节点
     2.3 移动节点
     2.4 删除节点
     2.5 节点搜索

↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑<LDAP Service>↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
3.节点类型
    3.0 节点属性规范(SCHEMA)
4.节点
     4.0 目录里的对象
     4.1 属性即是节点的数据
     4.2 目录中通过DN(Distinguished Name)唯一标识(可以认为是路径)
     4.2.0 节点DN = RDN(Relative Distinguished Name) + 父节点的DN
     4.3 目录是TREE结构,节点可以有子节点,也可以有父节点

5.节点唯一标识DN说明
     5.0 示例: dn:CN=John Doe,OU=Texas,DC=example,DC=com
     5.1 从右到左 根节点 -> 子节点
     5.2 DC:所在控制域 OU:组织单元 CN:通用名称

↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑<结点 DN 也成Entry>↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
6.属性
     6.0 同一个属性可以有多个值
     6.1 包含属性名称,属性类型

     6.1.0 属性具有:

          Syntax Rule,语法定义(例如:Directory String);

          Typically Size,典型大小(例如:caseIgnoreMatch);

          Single/Multi,Entry下是否可以有多个此属性;

          Matching Rule,属性比较大小的规则;

          Constraint,属性约束条件(是否为主键);

          Object Class,属性所属的对象;

          以上,在Directory Schema规定。
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑<Attribute>↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
7.目录规范(SCHEMA)
    7.0 目录节点相关规则
     7.1 Attribute Syntaxes
     7.2 Matching Rules
     7.3 Matching Rule Uses
     7.4 Attribute Types
     7.5 Object Classes
     7.6 Name Forms
     7.7 Content Rules
     7.8 Structure Rule

LDAP的使用:

软件openLDAP,开源,http://www.openldap.org

1.安装,配置:

         省略;

2.数据操作:

        添加数据=>

        (1)使用ldif(LDAP目录交换格式)文件;

        (2)文件内,每条记录,使用空行分开:

                第一行:dn: xxxxx,必须定义顶级区分名;

                第二行->第n行:属性:值;

        (3)命令行添加内容:

                ladapadd -D "区分名dn" -w 密码< 文件.ldif

                如远程修改,添加-h 主机名;-p 端口名(一般6005);

                部分情况需要追加-x,否则添加失败;

                -v,输出运行情况;

                ldapadd -x -h localhost -p 6005 -w 密码 -D cn=root -v -f 文件名.ldif

        (4)命令行查询内容:

                查询某个区分名的所有数据,ldapsearch 区分名=值

                查询根的所有区分名,ldapsearch '(&(条件1)(ou=根名))' dn

                如远程修改,添加-h 主机名;-p 端口名(一般6005);

                ldapsearch -x -LLL -h localhost -p 6005 -w 密码 -D cn=root -b dc=xx "(|(条件1))" "属性名+空格+属性名"

                dc,条目(多个属性的集合)所属的完整路径;

               

猜你喜欢

转载自blog.csdn.net/du1055669885/article/details/82756612