LDAP-轻量目录访问协议
简介
LDAP是 Lightweight Directory Access Protocol的缩写,称为“轻量级目录访问协议”。它是一种在IP网络上访问和维护目录信息服务的应用层网络协议。
LDAP基本概念
dn(Distinguished Name)
区分名称,LDAP中每个条目都有自己的dn,dn是该条目在整棵树中的唯一标识,如同文件系统中,带路径的文件名就是DN。
dc(Domain Component)
域名组成。其格式是将完整的域名分成几部分,如将example.com变成dc=example,dc=com。
uid(User ID)
用户ID,通常指某个用户的登录名,如biao.yang。
ou(Organization Unit)
组织单元。
cn(Common Name):公共名称。
sn(surname):姓氏。
c(Country):国家,如“CN”或者“US”。
o(Organization):组织名称。
传统命名的 LDAP 目录树示例
基于域的命名的 LDAP 目录树示例
实现
LDAP的开源实现
OpenLDAP
开源、跨平台的LDAP实现,支持LDAP v2和v3,是最流行的开源LDAP项目之一。
389 Directory Server
由Red Hat发起的开源LDAP目录服务,性能好,适合大规模部署。
Apache Directory Server
Apache软件基金会的纯Java LDAP目录服务。
OpenDJ
由Sun开发,后来移交到ForgeRock。支持LDAP和X.500协议。
互联网公司使用最多的开源LDAP实现是OpenLDAP。例如Google就是使用OpenLDAP来存储账户信息的。OpenLDAP稳定、性能好、文档丰富,社区活跃是其被广泛采用的主要原因。
案例
docker+openLDAP+phpLDAPadmin
安装OpenLDAP
1 |
|
1 |
|
安装phpLDAPadmin
phpLDAPadmin :https://github.com/osixia/docker-phpLDAPadmin
1 |
|
访问:https://localhost/ 进行登录
登录成功界面
初始化和创建用户
创建OU(organizational unit)
创建 Posix 用户默认组
创建用户
测试登录
Login DN: cn=biaoyang,ou=rancher,dc=example,dc=com
Password: 123456
系统接入OpenLDAP
以Rancher为例
配置连接LDAP服务器
配置访问权限
测试登录
资料
- wiki:https://zh.wikipedia.org/wiki/%E8%BD%BB%E5%9E%8B%E7%9B%AE%E5%BD%95%E8%AE%BF%E9%97%AE%E5%8D%8F%E8%AE%AE
- Understanding LDAP - Design and Implementation :https://www.redbooks.ibm.com/Redbooks.nsf/RedbookAbstracts/sg244986.html?OpenDocument
- openLDAP:https://www.openldap.org/
- https://www.openldap.org/doc/admin24/intro.html#What%20is%20LDAP