Java 升级之路(六)LDAP

 


Java 升级之路(六)LDAPLDAP 基本概念LDAP 常见名词Java连接LDAPUbuntu安装LDAP服务器Java实现LDAPLDIF格式LDAPS

LDAP 基本概念

LDAP (Lightweight Directory Access Protocol) : 轻量目录访问协议

LDAP是一个跨平台的、标准的协议

LDAP支持TCP/IP

LDAP也是有client端和server端。server端是用来存放资源,client端用来操作增删改查等操作

LDAP是一个到目录服务的目录访问协议

目录服务:简单来讲是为了浏览和搜索数据而设计的特殊数据库

LDAP 类似于用一个树状结构将数据联系起来(和查询DNS服务挺类似的),大致如图所示:

PS. LDAP 中的数据不常用来修改

 

LDAP 常见名词

缩写全称含义
dcDomain Component域名的部分,其格式是将完整的域名分成几部分,如dc=domain,dc=com
uidUser Id用户ID, 如"test"
ouOrganization Unit组织单位,类似于Linux文件系统中的子目录,是一个容器对象,可以包含其他各种对象
cnCommon Name公共名称
snSurname
dnDistinguished Name唯一辨别名,类似于绝对路径,如"uid=test,ou=sec,dc=domain,dc=com",在一个目录树中dn总是唯一的
rdnRelative dn相对辨别名,类似相对路径
cCountry国家
oOrganization组织名

 

  
Directory目录,用于存放信息的单元
Entry条目,一个entry就是一条记录,是LDAP中一个基本的存储单元
DN:Distinguished Name条目中用于唯一区别改条目的信息
LDIF:LDAP Interchange Format用于规范LDAP的配置和目录内容等详细信息的保存
ObjectclassLDAP对象类,是LDAP内置的数据模型。每种objectClass有自己的数据结构

PS.

 

Java连接LDAP

可以用JNDI的方式

如之前在JNDI中提到的

java代码也与之前在JNDI中举例的类似

一个简易的连接LDAP服务器完整Java代码为

 

 

Ubuntu安装LDAP服务器

sudo apt install slapd ldap-utils

slapd -h "ldap://:1234" 指定为1234端口启动

 

Java实现LDAP

pom.xml

 

 

LDIF格式

用于规范LDAP的配置和目录内容等详细信息的保存

一个LDIF文件的格式大致为

如:

可使用Context.lookup("ldap://<ip>:<port>/xxx")

Context.lookup("ldap://127.0.0.1:37777/dc=example,dc=com");

 

LDAPS

LDAP和LDAPS 的关系类似于 HTTP与HTTPS

LDAPS: LDAP over SSL(LDAPS)