首页 > 其他分享 >AD和LDAP的区别

AD和LDAP的区别

时间:2023-05-06 12:11:36浏览次数:33  
标签:AD 区别 windows dc Active LDAP Directory

LDAP是轻量目录访问协议(Lightweight Directory Access Protocol)的缩写,LDAP标准实际上是在X.500标准基础上产生的一个简化版本

AD是Active  Directory的缩写,AD应该是LDAP的一个应用实例,而不应该是LDAP本身。比如:windows域控的用户、权限管理应该是微软公司使用LDAP存储了一些数据来解决域控这个具体问题,

只是AD顺便还提供了用户接口,也可以利用Active Directory当做LDAP服务器存放一些自己的东西而已。比如LDAP是关系型数据库,微软自己在库中建立了几个表,每个表都定义好了字段。显然这些表和字段都是根据微软自己的需求定制的,而不是LDAP协议的规定。然后微软将LDAP做了一些封装接口,用户可以利用这些接口写程序操作LDAP,使得Active Directory也成了一个LDAP服务器。

总之:Active Directory = LDAP服务器+LDAP应用(Windows域控)。Active Directory先实现一个LDAP服务器,然后自己先用这个LDAP服务器实现了自己的一个具体应用(域控)

厂商

产品

介绍

SUN

SUNONE Directory Server

基于文本数据库的存储,速度快 。

IBM

IBM Directory Server

基于DB2 的的数据库,速度一般。

Novell

Novell Directory Server

基于文本数据库的存储,速度快, 不常用到。

Microsoft 

Microsoft Active Directory

基于WINDOWS系统用户,对大数据量处理速度一般,但维护容易,生态圈大,管理相对简单。

Opensource

Opensource

OpenLDAP 开源的项目,速度很快,但是非主 流应用。

Openldap 整合windows AD认证

Openldap是开源的目录服务实现,windows AD是微软的目录服务现实。现状是有的场景(应用、客户端)跟openldap结合比较容易,有的场景又是必须要用AD,所以几乎不可能弃用其中的任意一种。但同时维护两套系统意味着维护工作大量增加(不仅仅只是增加一倍,要考虑信息分别维护、同步etc等)、出错几率增加。

其中的一种较成熟、使用比较多的解决方案是:openldap使用windows AD的认证,这样只需要在AD上维护一套用户密码即可。

流程图

 

如图,相关组件分四大部分:

1.LDAP client ;这个是实际调用ldap服务的系统,也可以是类似ldapsearch之类的client 程序

2.Openldap;开源服务端,实际进程为slapd

3.Saslauthd;简单认证服务层的守护进程,该进程要安装在openldap服务器上
4.Active directory;即windows AD

Spring Security LDAP简介
Maven Dependency
首先,让我们看看我们需要的maven依赖项:

 
<dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-ldap</artifactId></dependency><dependency> <groupId>org.apache.directory.server</groupId> <artifactId>apacheds-server-jndi</artifactId> <version>1.5.5</version></dependency>
1.
Java Configuration
接下来,我们来讨论我们的Spring Security Java配置:

 
public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.ldapAuthentication() .userSearchBase("ou=people") .userSearchFilter("(uid={0})") .groupSearchBase("ou=groups") .groupSearchFilter("member={0}") .contextSource() .root("dc=baeldung,dc=com") .ldif("classpath:users.ldif"); }}
1.
需要注意的是userSearchFilter("(uid={0})")对应的uid每个ldap产品不一样,微软adldap对应的是SamAccountName={0}。

XML Configuration
现在,我们来看看相应的XML配置:

 
<authentication-manager> <ldap-authentication-provider user-search-base="ou=people" user-search-filter="(uid={0})" group-search-base="ou=groups" group-search-filter="(member={0})"> </ldap-authentication-provider></authentication-manager>   <ldap-server root="dc=baeldung,dc=com" ldif="users.ldif"/>
1.
LDAP数据交换格式
LDAP数据可以使用LDAP数据交换格式(LDIF)表示 - 这是我们的用户数据的示例:

 
dn: ou=groups,dc=baeldung,dc=comobjectclass: topobjectclass: organizationalUnitou: groups dn: ou=people,dc=baeldung,dc=comobjectclass: topobjectclass: organizationalUnitou: peo
-----------------------------------
©著作权归作者所有:来自51CTO博客作者davidwang456的原创作品,请联系作者获取转载授权,否则将追究法律责任
AD和LDAP的区别
https://blog.51cto.com/davidwang456/3085212

标签:AD,区别,windows,dc,Active,LDAP,Directory
From: https://www.cnblogs.com/gaoyanbing/p/17376853.html

相关文章

  • ASEMI代理ADUM1250ARZ-RL7原装ADI车规级ADUM1250ARZ-RL7
    编辑:llASEMI代理ADUM1250ARZ-RL7原装ADI车规级ADUM1250ARZ-RL7型号:ADUM1250ARZ-RL7品牌:ADI/亚德诺封装:SOIC-8-150mil批号:2023+引脚数量:8工作温度:-40°C~105°C安装类型:表面贴装型ADUM1250ARZ-RL7汽车芯片ADUM1250ARZ-RL7特性双向I2C通信开放式排水接口适用于热插拔......
  • C# Lambda表达式select()和where()的区别
    1、where()用法:必须加条件,且返回对象结果。string[]arrays={"asd","abc","bbb","ccc"};varresults=arrays.Where(a=>a.Contains("b"));//必须加条件,返回对象2、select()用法:(1)(a=>a.Value=="22")加条件查询时,返回bool型结果;(2)(a=......
  • Ganymed-SSH2和JSch的区别及优缺点
    Ganymed-SSH2和JSch都是Java中用于实现SSH客户端的库。下面是它们的区别及优缺点:区别:Ganymed-SSH2:Ganymed-SSH2是一款轻量级的SSH-2实现,它提供了简单易用的API,支持SSH客户端和服务器端的开发。Ganymed-SSH2主要使用纯Java编写,可以在所有支持Java的平台上运行,不需要任何本地库或......
  • ASEMI代理ADUC834BSZ原装ADI车规级ADUC834BSZ
    编辑:llASEMI代理ADUC834BSZ原装ADI车规级ADUC834BSZ型号:ADUC834BSZ品牌:ADI/亚德诺封装:MQFP-52批号:2023+安装类型:表面贴装型引脚数量:8工作温度:-40°C~125°C类型:车规级芯片ADUC834BSZ特征高分辨率-ADC2个独立ADC(16位和24位分辨率)24位无缺失代码,主ADC21位rms(18.5位p......
  • npx与npm的区别,使用npx的好处
     什么是NPX?一个npm包执行器,指在提高从npm注册表使用软件包时的体验NPX是NPM包的执行者。最初,NPX于2017年7月推出.NPX只是一个可以像其他NPM软件包一样安装的NPM软件包。目前,在安装NPM5.2.0或更高版本时,NPX与NPM捆绑在一起。 使用NPX使用NPX,您可以运行和执行软件包,而无需......
  • pgadmin4中view/edit data列名称右侧有小锁图标导致不能修改数据。
    pgadmin4中,view/editdata之后数据列名称旁边有个小锁的图片,导致不能修改数据。解决方法:之前创建表时没有primarykey,表加上primarykey即可,之后列名称之后的小图标变成了一支笔。例CREATETABLEjoe.tb1(idint,c1varchar(128),constraintpk_tb1_idprimarykey(id));......
  • iBatis与MyBatis区别
     iBatis框架的主要优势:1、iBatis封装了绝大多数的JDBC样板代码,使得开发者只需关注SQL本身,而不需要花费精力去处理例如注册驱动,创建Connection,以及确保关闭Connection这样繁杂的代码。2、从iBatis到MyBatis,不只是名称上的变化,MyBatis提供了更为强大的功能,同时并没有损......
  • Verilog实现FIR低通滤波器,vivado平台开发,包含testbench
    1.算法仿真效果vivado2019.2仿真结果如下:    2.算法涉及理论知识概要       FIR(FiniteImpulseResponse)滤波器:有限长单位冲激响应滤波器,又称为非递归型滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其......
  • Android开发--事件绑定及startActivity、startActivityForResult区别
      一、绑定事件的方法:1、方法一:UI组件事件属性调用main.xml:<Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="forWard"an......
  • day1 hadopp安装与使用-前期准备【上】
    【OS】先说明一下,本人正处于大二下,之前一直学的又水又混乱,突发奇想开个博客来记录一下方便自己日后回顾。所写皆为本人自己查阅资料or询问老师所得,非官方,不保熟,路过的家人们可以和我多多探讨,在上手时还是建议参考大佬的帖子。完毕! 【参考教材】大数据基础编程、实验和案例教程......