LDAP相关概念
Contents
令人头疼的多系统账号管理
大家是否有以下困扰?
- 公司有多套不同的办公系统
- 每个系统都有不同的账号密码,有时候账号密码容易记混
- 内部项目每开发一个都要开发和维护一套用户名密码
- 多套系统的账号密码维护起来令人头大
LDAP服务可以用来解决以上问题
什么是 LDAP
LDAP是轻量目录访问协议(Lightweight Directory Access Protocol)的缩写,LDAP是从X.500目录访问协议的基础上发展过来的,目前的版本是v3.0。与LDAP一样提供类似的目录服务软件还有OpenLDAP、ApacheDS、Active Directory、OpenDJ、Red Hat Directory Service、Microsoft Active Directory 等
目录是一个为查询、浏览和搜索而优化的专业分布式数据库,它呈树状结构组织数据,就好象Linux/Unix系统中的文件目录一样。目录数据库和关系数据库不同,它有优异的读性能,但写性能差,并且没有事务处理、回滚等复杂功能,不适于存储修改频繁的数据。所以目录天生是用来查询的,就好象它的名字一样。
目录服务是由目录数据库和一套访问协议组成的系统。类似以下的信息适合储存在目录中:
- 企业员工信息,如姓名、电话、邮箱等;
- 公用证书和安全密钥;
- 公司的物理设备信息,如服务器,它的IP地址、存放位置、厂商、购买时间等;
LDAP 特点
- LDAP的结构用树来表示,而不是用表格。正因为这样,就不能用SQL语句了
- LDAP可以很快地得到查询结果,不过在写方面,就慢得多
- LDAP提供了静态数据的快速查询方式
- Client/server模型,Server 用于存储数据,Client提供操作目录信息树的工具
- 这些工具可以将数据库的内容以文本格式(LDAP 数据交换格式,LDIF)呈现在你的面前
- LDAP是一种开放Internet标准,LDAP协议是跨平台的Interent协议
LDAP 的基本模型
目录树
- 目录树:在一个目录服务系统中,整个目录信息集可以表示为一个目录信息树,树中的每个节点是一个条目。
- 条目:每个条目就是一条记录,每个条目有自己的唯一可区别的名称(DN)。
- 对象类:与某个实体类型对应的一组属性,对象类是可以继承的,这样父类的必须属性也会被继承下来。
- 属性:描述条目的某个方面的信息,一个属性由一个属性类型和一个或多个属性值组成,属性有必须属性和非必须属性。
关键字详情
关键字 | 英文全称 | 含义 |
---|---|---|
dc | Domain Component | 域名的部分,其格式是将完整的域名分成几部分,如域名为example.com变成dc=example,dc=com(一条记录的所属位置) |
uid | User id | 用户ID sintod.p (一条记录的ID) |
ou | Organization Unit | 组织单位,组织单位可以包含其他各种对象(包括其他组织单元),如“Tech”(一条记录的所属组织) |
cn | Common Name | 公共名称,如“Sin Tod”(一条记录的名称) |
sn | Surname | 姓,如“平” |
dn | Distinguished Name | “uid=sintod.p,ou=Tech,dc=example,dc=com”,一条记录的位置(唯一) |
rdn | Relative dn | 相对辨别名,类似于文件系统中的相对路径,它是与目录树结构无关的部分,如“uid=sintod”或“cn= Sin Tod” |
相关工具
- OpenLDAP 使用比较多的开源LDAP软件
- phpLDAPadmin LDAP 的 web UI
- ApacheLdapStudio LDAP 的 GUI 支持 macOS Linux Windows
- PWM 自助修改密码的web服务
- Self Service Password 自助修改密码的web服务