• LDAP & Implementation


    一、什么是LDAP?

    (一)在介绍什么是LDAP之前,我们先来复习一个东西:“什么是目录服务?

        1. 目录服务是一个特殊的数据库,用来保存描述性的、基于属性的详细信息,支持过滤功能。

        2. 是动态的,灵活的,易扩展的。

        如:人员组织管理,电话簿,地址簿。

    (二)了解完目录服务后,我们再来看看LDAP的介绍:

    LDAP(Light Directory Access Portocol),它是基于X.500标准的轻量级目录访问协议。

    目录是一个为查询、浏览和搜索而优化的数据库,它成树状结构组织数据,类似文件目录一样。

    目录数据库和关系数据库不同,它有优异的读性能,但写性能差,并且没有事务处理、回滚等复杂功能,不适于存储修改频繁的数据。所以目录天生是用来查询的,就好象它的名字一样。

    LDAP目录服务是由目录数据库和一套访问协议组成的系统。

    (三)为什么要使用

    LDAP是开放的Internet标准,支持跨平台的Internet协议,在业界中得到广泛认可的,并且市场上或者开源社区上的大多产品都加入了对LDAP的支持,因此对于这类系统,不需单独定制,只需要通过LDAP做简单的配置就可以与服务器做认证交互。“简单粗暴”,可以大大降低重复开发和对接的成本。

    我们拿开源系统(YAPI)做案例,只需做一下简单的几步配置就可以达到LDAP的单点登录认证了:

    复制代码
    {
    "ldapLogin": {
          "enable": true,
          "server": "ldap://l-ldapt1.ops.dev.cn0.qunar.com",
          "baseDn": "CN=Admin,CN=Users,DC=test,DC=com",
          "bindPassword": "password123",
          "searchDn": "OU=UserContainer,DC=test,DC=com",
          "searchStandard": "mail"
       }
    }
    复制代码

    是不是很方便呢?

    二、LDAP的使用

      那我们是如何访问LDAP的数据库服务器呢?

      

      统一身份认证主要是改变原有的认证策略,使需要认证的软件都通过LDAP进行认证,在统一身份认证之后,用户的所有信息都存储在AD Server中。终端用户在需要使用公司内部服务的时候,都需要通过AD服务器的认证。

      那么程序中是如何访问的呢? 我们以PHP脚本作为例子:

    $ldapconn = ldap_connect(“10.1.8.78")
    $ldapbind = ldap_bind($ldapconn, 'username', $ldappass);
    $searchRows= ldap_search($ldapconn, $basedn, "(cn=*)");
    $searchResult = ldap_get_entries($ldapconn, $searchRows);
    ldap_close($ldapconn);

    1. 连接到LDAP服务器;

    2. 绑定到LDAP服务器;

    3. 在LDAP服务器上执行所需的任何操作;

    4. 释放LDAP服务器的连接;

  • 相关阅读:
    lua学习笔记
    s2-029 Struts2 标签远程代码执行分析(含POC)
    GoAccess日志分析工具使用文档
    error: command 'gcc' failed with exit status 1 的解决办法
    机器学习算法总结(八)——广义线性模型(线性回归,逻辑回归)
    机器学习中常见的过拟合解决方法
    机器学习算法总结(七)——隐马尔科夫模型(前向后向算法、鲍姆-韦尔奇算法、维特比算法)
    机器学习算法总结(六)——EM算法与高斯混合模型
    机器学习中常见的损失函数
    机器学习算法总结(五)——聚类算法(K-means,密度聚类,层次聚类)
  • 原文地址:https://www.cnblogs.com/clling/p/10639197.html
Copyright © 2020-2023  润新知