十年JAVA搬砖路——Linux搭建Ldap服务器。

1.安装命令

powershell 复制代码
yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel

2.启动ldap

powershell 复制代码
systemctl start slapd
systemctl enable slapd

3.修改密码

powershell 复制代码
slappasswd
Aa123456

获得返回的密码加密密码串: {SSHA}DkSw0+43+u4PK7c7F1GtoubEWHnrz3bG

  1. 去slapd.d 目录 创建db.ldif 文件
powershell 复制代码
cd /etc/openldap/slapd.d
powershell 复制代码
vim db.ldif

文件内容:

powershell 复制代码
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=ricman,dc=localhost

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=ricman,dc=localhost

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}KUYZ4irDCPN8seoOg1zNNVzh70jVr1c8

#各个命令的说明

{

第一条语句修改了olcSuffix属性,该属性表示LDAP目录的后缀(基础DN)。它被替换为"dc=ricman,dc=localhost"。

第二条语句修改了olcRootDN属性,该属性表示LDAP目录的根用户(管理员)的区别名称(DN)。它被替换为"cn=Manager,dc=ricman,dc=localhost"。

第三条语句添加了一个新的属性olcRootPW,该属性表示根用户的密码。密码以哈希值形式提供({SSHA}KUYZ4irDCPN8seoOg1zNNVzh70jVr1c8)。

}

5.运行ldapmodify 命令替换系统文件

powershell 复制代码
ldapmodify -Y EXTERNAL -H ldapi:/// -f db.ldif

6.进入目录 cn=config 创建 monitor.ldif 文件

powershell 复制代码
/etc/openldap/slapd.d/cn=config
powershell 复制代码
vim monitor.ldif

文件内容

powershell 复制代码
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external, cn=auth" read by dn.base="cn=Manger,dc=ricman,dc=localhost" read by * none

7.运行 ldapmodify 使得monitor 文件生效

powershell 复制代码
ldapmodify -Y EXTERNAL -H ldapi:/// -f monitor.ldif
  1. 创建ldap基础库 复制ldap原有配置,并赋予它所有权限
powershell 复制代码
cp /usr/share/openldap-servers/DB_CONFIG.example
powershell 复制代码
/var/lib/ldap/DB_CONFIG
powershell 复制代码
chown ldap:ldap /var/lib/ldap/*

然后向数据库添加schemas,包括cosine、nis、inetorgperson,然后分别执行下列命令

powershell 复制代码
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f/etc/openldap/schema/inetorgperson.ldif

9.创建 base.ldif 文件

powershell 复制代码
vim base.ldif 

文件内容:

dn: dc=ricman,dc=localhost

dc: ricman

objectClass: top

objectClass: domain

dn: cn=Manager ,dc=ricman,dc=localhost

objectClass: organizationalRole

cn: Manager

description: LDAP Manager

dn: ou=People,dc=ricman,dc=localhost

objectClass: organizationalUnit

ou: People

dn: ou=Group,dc=ricman,dc=localhost

objectClass: organizationalUnit

ou: Group

#语句说明

{

以下是上述语句的中文意思:

第一条语句创建了一个名为"dc=ricman,dc=localhost"的条目,表示一个域(domain)。该条目具有top和domain两个objectClass。

第二条语句创建了一个名为"cn=Manager,dc=ricman,dc=localhost"的条目,表示一个组织角色(organizationalRole)。该条目具有organizationalRole的objectClass,并且具有cn(名称)和description(描述)属性。

第三条语句创建了一个名为"ou=People,dc=ricman,dc=localhost"的条目,表示一个组织单位(organizationalUnit)。该条目具有organizationalUnit的objectClass,并且具有ou(组织单位名称)属性。

第四条语句创建了一个名为"ou=Group,dc=ricman,dc=localhost"的条目,表示一个组织单位(organizationalUnit)。该条目具有organizationalUnit的objectClass,并且具有ou(组织单位名称)属性。

LDIF语句的作用如下:

  1. dn: dc=ricman,dc=localhost

    dc: ricman

    objectClass: top

    objectClass: domain

    这条语句创建了一个域(domain)条目,其区别名称(DN)为"dc=ricman,dc=localhost"。该域具有属性"dc"设置为"ricman",并且具有"top"和"domain"两个对象类。

  2. dn: cn=Manager,dc=ricman,dc=localhost

    objectClass: organizationalRole

    cn: Manager

    description: LDAP Manager

    这条语句创建了一个组织角色(organizationalRole)条目,其区别名称为"cn=Manager,dc=ricman,dc=localhost"。该角色具有对象类"organizationalRole",并且具有属性"cn"设置为"Manager"和"description"设置为"LDAP Manager"。

  3. dn: ou=People,dc=ricman,dc=localhost

    objectClass: organizationalUnit

    ou: People

    这条语句创建了一个组织单位(organizationalUnit)条目,其区别名称为"ou=People,dc=ricman,dc=localhost"。该单位具有对象类"organizationalUnit",并且具有属性"ou"设置为"People"。

  4. dn: ou=Group,dc=ricman,dc=localhost

    objectClass: organizationalUnit

    ou: Group

    这条语句创建了另一个组织单位(organizationalUnit)条目,其区别名称为"ou=Group,dc=ricman,dc=localhost"。该单位具有对象类"organizationalUnit",并且具有属性"ou"设置为"Group"。

这些语句通常用于定义LDAP目录的结构和组织,包括域(domain)、管理角色、用户和组的组织单位。

}

  1. 运行 ldapadd 命令生效 base.ldif 文件
powershell 复制代码
ldapadd -x -W -D "cn=Manager,dc=ricman,dc=localhost" -f base.ldif

需要输入密码,密码为一开始设置的Aa123456

11.Ldap Admin工具链接

依次点击start---connect---New connection,然后输入 Host,Base以及用户名与密码,如下图所示,然后test connection。

相关推荐
Starry_hello world4 分钟前
进程的替换
linux·笔记·有问必答
雨过天晴而后无语4 分钟前
Windchill10+html使用Lightbox轻量化wizard的配置
java·前端·html
Yeniden20 分钟前
设计模式>原型模式大白话讲解:就像复印机,拿个原件一复印,就得到一模一样的新东西
java·设计模式·原型模式·1024程序员节
微信api接口介绍33 分钟前
微信个人发消息api
运维·服务器·开发语言·前端·网络·微信·ipad
披着羊皮不是狼37 分钟前
HTTP 与 API 入门:理解前后端交互原理
java·网络协议·http·交互
攻心的子乐38 分钟前
MinIO 开源的分布式文件服务器
运维·服务器
2401_841495641 小时前
【操作系统】模拟真实操作系统核心功能的Java实现
java·操作系统·进程管理·系统调用·并发控制·中断处理·cpu调度
程序员皮皮林1 小时前
Java 25 正式发布:更简洁、更高效、更现代!
java·开发语言·python
好家伙VCC1 小时前
**发散创新:AI绘画编程探索与实践**随着人工智能技术的飞速发展,AI绘
java·人工智能·python·ai作画
勇者无畏4041 小时前
基于 Spring AI Alibaba 搭建 Text-To-SQL 智能系统(前置介绍)
java·后端·spring·prompt·embedding