zoukankan      html  css  js  c++  java
  • 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服务器的连接;

  • 相关阅读:
    5.19 省选模拟赛 T1 小B的棋盘 双指针 性质
    5.15 省选模拟赛 容斥 生成函数 dp
    5.15 省选模拟赛 T1 点分治 FFT
    5.15 牛客挑战赛40 B 小V的序列 关于随机均摊分析 二进制
    luogu P4929 【模板】舞蹈链 DLX
    CF 878E Numbers on the blackboard 并查集 离线 贪心
    5.10 省选模拟赛 拍卖 博弈 dp
    5.12 省选模拟赛 T2 贪心 dp 搜索 差分
    5.10 省选模拟赛 tree 树形dp 逆元
    luogu P6088 [JSOI2015]字符串树 可持久化trie 线段树合并 树链剖分 trie树
  • 原文地址:https://www.cnblogs.com/clling/p/10639197.html
Copyright © 2011-2022 走看看