ldap是啥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ldap是啥相关的知识,希望对你有一定的参考价值。

简单的说来,LDAP是一个得到关于人或者资源的集中、静态数据的快速方式。

LDAP是一个用来发布目录信息到许多不同资源的协议。通常它都作为一个集中的地址被使用,不过根据组织者的需要,它可以做得更加强大。

LDAP其实是一个电话簿,类似于我们所使用诸如NIS(Network Information Service)、DNS (Domain Name Service)等网络目录,也类似于你在花园中所看到的树木。

不少LDAP开发人员喜欢把LDAP与关系数据库相比,认为是另一种的存贮方式,然后在读性能上进行比较。实际上,这种对比的基础是错误的。LDAP和关系数据库是两种不同层次的概念,后者是存贮方式(同一层次如网格数据库,
对象数据库),前者是存贮模式和访问协议。LDAP是一个比关系数据库抽象层次更高的存贮概念,与关系数据库的查询语言SQL属同一级别。LDAP最基本
的形式是一个连接数据库的标准方式。该数据库为读查询作了优化。因此它可以很快地得到查询结果,不过在其它方面,例如更新,就慢得多。

特殊的数据库

从另一个意义上 LDAP是实现了指定的数据结构的存贮,它是一种特殊的数据库。但是LDAP和一般的数据库不同,明确这一点是很重要的。 LDAP对查询进行了优化,与写性能相比LDAP的读性能要优秀很多。

就象Sybase、Oracle、Informix或Microsoft的数据库管理系统(DBMS)是用于处理查询和更新关系型数据库那样,LDAP服务器也是用来处理查询和更新LDAP目录的。换句话来说LDAP目录也是一种类型的数据库,但不是关系型数据库。要特别注意的是,LDAP通常作为一个 hierarchical数据库使用,而不是一个关系数据库。因此,它的结构用树来表示比用表格好。正因为这样,就不能用SQL语句了。

21世纪的LDAP技术发展很快。 几乎所有计算机平台上的所有的应用程序都可以从LDAP目录中获取信息。LDAP目录中可以存储各种类型的数据:电子邮件地址、邮件路由信息、人力资源数据、公用密匙、联系人列表,等等。通过把LDAP目录作为系统集成中的一个重要环节,可以简化员工在企业内部查询信息的步骤,甚至连主要的数据源都可以放在任何地方。

服务器

LDAP服务器可以用“推”或“拉”的方法复制部分或全部数据,例如:可以把数据“推”到远程的办公室,以增加数据的安全性。复制技术是内置在LDAP服务器中的而且很容易配置。如果要在DBMS中使用相同的复制功能,数据库厂商就会要你支付额外的费用,而且也很难管理。
参考技术A LDAP简单说,是一种协议,是一个访问在线目录服务的协议,Lightweight Directory Access Protocol
有很多RFC文档描述了LDAP的不同版本,如果你有兴趣,可以查看RFC

使用 WS 网关和 LDAP 向 Web 服务提供 AAA 的最优雅和最有效的方法是啥?

【中文标题】使用 WS 网关和 LDAP 向 Web 服务提供 AAA 的最优雅和最有效的方法是啥?【英文标题】:What is the most elegant and efficient way to provide AAA to web services using a WS gateway and LDAP?使用 WS 网关和 LDAP 向 Web 服务提供 AAA 的最优雅和最有效的方法是什么? 【发布时间】:2010-09-21 09:07:13 【问题描述】:

我正在寻找向 Web 服务提供授权、身份验证和审计的最佳方式。我将使用部署到 DMZ 的 Web 服务网关设备,并且将有一个 LDAP 实例作为防火墙后面的用户存储。应该怎么建?

干杯

更新 正如下面的答案所指出的,LDAP 不适合审计。我们现在正在考虑调用我们的 CRM 系统来实现此功能,因为我们可以审核客户的使用情况。

【问题讨论】:

【参考方案1】:

身份验证是相当标准的。尝试验证用户名和密码时,首先绑定为具有查看所有用户权限的用户,然后在相应字段(可能是“uid”)中搜索具有提供的用户名的条目。找到条目后,获取其 DN 并尝试使用提供的密码绑定为该条目。

授权通常使用“动态组”来处理,您在每个用户对象中都有一个多值属性,说明用户拥有哪些权限,或者使用“静态组”处理,其中您拥有类似于“groupOfNames”的类的对象" 并将所有成员的 DN 粘贴到 "member" 属性中。

按照您的喜好进行审核。 LDAP 可能不是保存审计数据的最佳方式。如果您愿意,可以将其保存在数据库中,或者只使用 syslog。

【讨论】:

酷,很棒的信息。谢谢!后续调用如何处理?通过令牌? 这取决于程序员。您可以每次都回到 LDAP(如果您的容量足够低/功能强大的 LDAP 服务器),或者您可以缓存结果。您可以在会话中缓存,也可以拥有全局权限缓存。什么是最好的取决于您的应用程序的其余部分。

以上是关于ldap是啥的主要内容,如果未能解决你的问题,请参考以下文章

针对 Active Directory 的 LDAP 身份验证可接受的 SECURITY_PRINCIPAL 格式是啥?

Jenkins上集成多个LDAP服务器认证

Spring-ldap 操作LDAP

k8s接入ldap

微软安全公告 ADV190023 的 Spring Ldap 影响(LDAP 通道绑定和 LDAP 签名)

通过 LDAP 存储库验证 LDAP