龙空技术网

LDAP服务器搭建,单点登录系统必备品

强爱专研 521

前言:

现时各位老铁们对“ldap服务器”大概比较看重,咱们都想要剖析一些“ldap服务器”的相关知识。那么小编也在网上汇集了一些对于“ldap服务器””的相关资讯,希望看官们能喜欢,咱们快快来了解一下吧!

什么是LDAP

LDAP全称是轻型目录访问协议(Lightweight Directory Access Protocol)是一个开放的,中立的,工业标准的应用协议,通过IP协议提供访问控制和维护分布式信息的目录信息。

LDAP目录以树状的层次结构来存储数据。如果你对自顶向下的DNS树或UNIX文件的目录树比较熟悉,也就很容易掌握LDAP目录树这个概念

当公司规模大了之后,会有非常多的系统,如果每一个系统都需要注册一个用户名,每一个系统的用户名与密码可能都不一样。对员工来说就是一件折腾的事情,从公司的IT运维角度来说更是麻烦。所以需要统一认证,单点登录。而LDAP就是最适合在单点登录中使用的系统。

关键字

全称

含义

dc

Domain Component

域名的部分,其格式是将完整的域名分成几部分,如域名为example.com变成dc=example,dc=com(一条记录的所属位置)

uid

User Id

用户Id zuoquantu (一条记录的ID)

ou

Organization Unit

组织单位,组织单位可以包含在其他各种对象(包括其他组织单位),如”oa组” (一条记录的所属组)

cn

Common Name

公共名称,如“Thomas Johansson”(一条记录的名称)

sn

Surname

姓,如”许”

dn

Distinguished Name

“uid=songtao.xu,ou=oa组,dc=example,dc=com”,一条记录的位置(唯一)

rdn

Relative dn

相对辨别名,类似于文件系统中的相对路径,它是与目录树结构无关的部分,如“uid=tom”或“cn= Thomas Johansson”

o:organization(组织-公司)ou:organization unit(组织单元-部门)c:countryName(国家)dc:domainComponent(域名)sn:suer name(真实名称)cn:common name(常用名称)

搭建LDAP服务器的前提条件

准备:

系统:Centos7.7.1908

LDAP:OpenLDAP 2.4.44

关闭防火墙和SELinux(这里都是临时关闭,避免因此出现访问问题)

systemctl stop firewalldsetenforce 0
安装 OpenLdap

1、安装OPenLDAP与相关安装包

yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel

安装命令

安装完成

2、安装完成后直接启动服务并将服务设置为自动启动。运行如下命令

systemctl start slapdsystemctl enable slapdsystemctl status slapd  //查看下服务有没有启动

服务启动状态

启动完之后检查slapd服务和端口运行

netstat -antup | grep -i 389

3、创建LDAP的根密码

此密码用于整个安装过程,为LADP的管理员根密码,使用slappasswd 生成密码

输入slappasswd后会提示输入密码与确认密码,系统会输出一串SSHA加密后的字符串,拷贝出来放到notepad++中备用。

我设置的密码是admin@admin,加密后的字符串为

{SSHA}rks7qNcDYskN42KmLMSK4UIDe8GMsSwb

slappasswd

4、配置LDAP服务

OPenLdap 2.4不再推荐直接使用配置文件方式,并且极容易出错,修改的所有过程,均使用ldapmodify完成

ls /etc/openldap/slapd.d/cn=config

文件名和我的一样差不多就行

修改olcDatabase\=\{2\}hdb.ldif文件,修改的字段如下:

olcSuffix :用于保存域信息,更新为自己的域,这里我填的qiang

olcRootDN :根的DN(唯一识别名),根的区别名,它用于根管理员在此节点下做所有的管理

olcRootPW :LDAP管理员的根密码,刚才执行slappasswd命令生成的加密内容就放在这

vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif

修改的地方

接下来在任意目录下创建 db.ldif文件,但是不能再/etc/openldap/slapd.d/cn=config目录创建。我在root目录下创建的。

◆ 修改db.ldif文件

vim db.ldif

标记黄色的部分改成自己的内容,其他内容可以直接复制

dn: olcDatabase={2}hdb,cn=configchangetype: modifyreplace: olcSuffixolcSuffix: dc=qiang,dc=comdn: olcDatabase={2}hdb,cn=configchangetype: modifyreplace: olcRootDNolcRootDN: cn=Manager,dc=qiang,dc=comdn: olcDatabase={2}hdb,cn=configchangetype: modifyadd: olcRootPWolcRootPW: {SSHA}rks7qNcDYskN42KmLMSK4UIDe8GMsSwb

ldapmodify命令在运行环境中直接修改配置文件,并且不需要重启就生效,具体请看ldapmodify官方文档。

在db.ldif目录下运行命令

ldapmodify -Y EXTERNAL -H ldapi:/// -f db.ldif

要注意的是有三个modifying entry才算全部更新成功。

出现这3个就可以

◆ 修改monitor文件

与修改db.ldif文件类似。在刚刚的db.ldif目录下运行

vim monitor.ldif

在此文件中输入以下内容

olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=Manager,dc=qiang,dc=com" read by * none
// 修改好后,运行如下命令,不报错就行ldapmodify -Y EXTERNAL -H ldapi:/// -f monitor.ldif

◆ 创建一个基础库,用于保存数据。安装ldap后会有一个example配置,我们复制一份配置文件并赋予它所有权限

cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIGchown ldap:ldap /var/lib/ldap/*

完成配置后就可以向数据库中增加schemas,需要增加的有:cosine , nis,inetorgperson

schemas是什么,schemas是数据库表的定义文件,相当于关系数据库中的表的定义。还是有点区别。

◆ 执行ldapadd命令增加,命令如下

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldifldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldifldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif

◆ 完成以后创建base.ldif,在库中增加自己管理域下的内容,运行命令

vim  base.ldif

在文件中输入以下内容,黄色区域修改自己的,其他直接复制

dn: dc=qiang,dc=comdc: qiangobjectClass: topobjectClass: domaindn: cn=Manager ,dc=qiang,dc=comobjectClass: organizationalRolecn: Managerdescription: LDAP Managerdn: ou=People,dc=qiang,dc=comobjectClass: organizationalUnitou: Peopledn: ou=Group,dc=qiang,dc=comobjectClass: organizationalUnitou: Group
// 将此数据保存到库中,运行命令// 此命令会提示输入ldap的密码,输入的密码与第3步创建的密码一致,我输入的:admin@adminldapadd -x -W -D "cn=Manager,dc=qiang,dc=com" -f base.ldif

到这里基本配置完成

使用工具连接LDAP

我这里使用的是ldapadmin工具连接的LDAP数据库,都可以正常连接。

标签: #ldap服务器 #ldap服务器提供什么服务