ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

LDAP介绍

2021-06-04 21:29:21  阅读:282  来源: 互联网

标签:数据库 LDAP DB 介绍 contextSource Berkeley Directory


LDAP 讲解

什么是LDAP

LDAP(Light Directory Access Portocol)是一款轻量级目录访问协议, 属于开源账号集中管理的实现,且支持众多系统版本

OpenLdap是LDAP的一种开源实现, OpenLdap是在X.500的基础上进行改进的, 但与X.500 也有不同之处,例如OpenLDAP 支持TCP/IP 协议等,目前TCP/IP 是Internet 上访问互联网的协议。

OpenLDAP 则直接运行在更简单和更通用的TCP/IP 或其他可靠的传输协议层上,避免了在OSI会话层和表示层的开销,使连接的建立和包的处理更简单、更快,对于互联网和企业网应用更理想

OpenLDAP 目录不支持通用数据库大量的更新操作与所需的复杂的事务管理或者回滚策略

OpenLDAP 默认以Berkeley DB 作为后端数据库,Berkeley DB 数据库主要以散列的数据类型进行数据存储,如以键值对的方式进行存储。Berkeley DB 是一类特殊的数据库,主要用于搜索、浏览、更新查询操作,一般对于一次写入数据、多次查询和搜索有很好的效果。Berkeley DB 数据库是面向查询进行优化,面向读取进行优化的数据库。Berkeley DB 不支持事务型数据库(MySQL、MariDB、Oracle 等)所支持的高并发的吞吐量以及复杂的事务操作

什么是目录服务?

目录服务是一个为了 查询 浏览 搜索 而优化的数据库, 它是树状组织数据, 类似文件目录一样

目录数据库有关系数据库不同, 它有优异的读性能, 但 写性能差,

属于开源集中账号管理架构的实现,且支持众多系统版本,被广大互联网公司所采用

目录服务在国际中有两个标准, 一个是x.500一个是LDAP, OpenLdap是LDAP的实现, 也是基于x.500的

LDAP 的实现产品

LDAP 全称: 轻量级目录访问协议, 协议就是一套标准, 那么具体的实现有哪些呢?

厂家产品介绍
SUNSUNONE Directory Server基于文本数据库的存储,速度快
IBMIBM Directory Server基于DB2 的的数据库,速度一般。
NovellNovell Directory Server基于文本数据库的存储,速度快, 不常用到。
MicrosoftMicrosoft Active Directory基于WINDOWS系统用户,对大数据量处理速度一般,但维护容易,生态圈大,管理相对简单。
OpensourceOpensourceOpenLDAP 开源的项目,速度很快,但是非主 流应用。

Spring整合LDAP

jar包选择

        <dependency>
            <groupId>org.springframework.ldap</groupId>
            <artifactId>spring-ldap-core</artifactId>
        </dependency>

部署版本根据Spring的版本进行选择

Config

@Configuration
public class LdapConfiguration {

    @Bean
    public LdapContextSource contextSource() {
        LdapContextSource contextSource = new LdapContextSource();
        Map<String, Object> config = new HashMap();

        contextSource.setUrl("ldap://IP:PORT");
        contextSource.setUserDn("....");
        contextSource.setPassword("...");

        //  解决 乱码 的关键一句
        config.put("java.naming.ldap.attributes.binary", "objectGUID");

        contextSource.setPooled(true);
        contextSource.setBaseEnvironmentProperties(config);
        return contextSource;
    }

    @Primary
    @Bean("ldapTemplate")
    public LdapTemplate ldapTemplate() {
        return new LdapTemplate(contextSource());
    }

}

常用方法

ldapTemplate.authenticate(userCn, "(objectclass=person)", pwd); // 根据用户验证账号密码

标签:数据库,LDAP,DB,介绍,contextSource,Berkeley,Directory
来源: https://blog.csdn.net/m0_37871594/article/details/117573483

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有