【LDAP】简介
LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。它是基于X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。
LDAP目录树的最顶部就是根,也就是所谓的“基准DN"。基准DN通常使用下面列出的三种格式之一。假定我在名为FooBar的电子商务公司工作,这家公司在Internet上的名字是foobar
o="FooBar, Inc.", c=US
(以X.500格式表示的基准DN)
这种格式很直观,用公司的域名作为基准DN。这也是现在最常用的格式。
dc=foobar, dc=com
(用DNS域名的不同部分组成的基准DN)
目录服务的特点? 目录服务与关系型数据库不同?
目录服务的数据类型主要是字符型, 而不是关系数据库提供的整数、浮点数、日期、货币等类型为了检索的需要添加了BIN(二进制数据)、CIS(忽略大小写)、CES(大小写敏感)、TEL(电话型)等语法(Syntax)同样也不提供象关系数据库中普遍包含的大量的函数目录有很强的查询(读)功能,适合于进行大量数据的检索但目录一般只执行简单的更新(写)操作,不支持批量更新所需要的事务处理功能它主要面向数据的查询服务(查询和修改操作比一般是大于10:1),不提供事务的回滚(rollback)机制.目录具有广泛复制信息的能力,适合于多个目录服务器同步/更新
LDAP特点
LDAP的结构用树来表示,而不是用表格。正因为这样,就不能用SQL语句了
LDAP可以很快地得到查询结果,不过在写方面,就慢得多
LDAP提供了静态数据的快速查询方式
Client/server模型
Server 用于存储数据Client提供操作目录信息树的工具这些工具可以将数据库的内容以文本格式(LDAP 数据交换格式,LDIF)呈现在您的面前
LDAP是一种开放Internet标准,LDAP协议是跨平台的 的Interent协议
它是基于X.500标准的, 与X.500不同,LDAP支持TCP/IP(即可以分布式部署)
LDAP存储这样的信息最为有用: 也就是数据需要从不同的地点读取,但是不需要经常更新:
公司员工的电话号码簿和组织结构图
客户的联系信息
计算机管理需要的信息,包括NIS映射、email假名,等等
软件包的配置信息
公用证书和安全密匙
Ldap的client /server结构
server /usr/sbin/slapd -u ldap -h ldap:///client 数据库操作client 用于对ldap server库进行操作
工具:ldapadd, ldapsearch实用client 用于将ldap server库在实际工作中使用工具:radius+ldap, pam+ldap
身份认证在LDAP中提供三种认证机制:
匿名 Ldapsearch –x -LLL 基本认证 通过用户名和密码进行身份识别,又分为简单密码和MD5密码认证
# ldapadd -x -D "cn=root,dc=otas,dc=cn" -W -f base.ldif
-x就是simple authetication
Enter LDAP Password: 输入admin123
adding new entry "dc=otas,dc=cn"
adding new entry "ou=People,dc=otas,dc=cn"
adding new entry "ou=Group,dc=otas,dc=cn"SASL Simple Authentication and Secure Layer
LDAP提供的在SSL和TLS安全通道基础上进行的身份认证,包括数字证书的认证
用户信息
DC (Domain Component)
CN (Common Name)
OU (Organizational Unit)
例如:CN=test,OU=developer,DC=domainname,DC=com
在上面的代码中 cn=test 可能代表一个用户名,ou=developer 代表一个 active directory 中的组织单位。这句话说明 test 这个对象处在domainname.com 域的 developer 组织单元中。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?