首页 > 编程语言 >搭建openldap与phpldapadmin

搭建openldap与phpldapadmin

时间:2023-05-07 14:04:41浏览次数:40  
标签:phpldapadmin dc openldap LDAP ldif 搭建 属性

现在很多ldap文档不太适合centos7下安装使用ldap,于是自己搓了一篇作为留底

LDAP基础概念:

在开始部署前,要了解一些LDAP知识点:

条目 entry

区别名/唯一标识名 Distinguished Name / DN

属性 attribute

LDAP的条目(entry) 是 具有区别名(Distinguished Named/DN唯一标识名)的属性(attribute)。

DN是用来引用条目的,是唯一的,相当于关系型数据库中的主键。

属性有类型(type)和一个或者多个值(value)组成,相当于关系型数据库中的字段。

Schema

schema是LDAP的一个重要组成部分,类似于 数据库的模式定义,LDAP的Schema定义了LDAP目录所应遵循的结构和规则,比如一个 objectclass会有哪些属性,这些属性又是什么结构等等,schema给LDAP服务器提供了LDAP目录中类别,属性等信息的识别方式,让这些 可以被LDAP服务器识别。

在LDAP的schema中,有四个重要的元素:

1. Objectclass

objectclass定义了一个类别,这个类别会被不同的目录(在LDAP中就是一个Entry)用到,它说明了该目录应该有哪些属性,哪些属性是必须 的,哪些又是可选的。一个objectclass的定义包括名称(NAME),说明(DESC),类型(STRUCTURAL或AUXILARY ,表示是结构型的还是辅助型的),必须属性(MUST),可选属性(MAY)等信息。

2. Attribute

attribute就是一个上面objectclass中可能包含的属性,对其的定义包括名称,数据类型,单值还是多值以及匹配规则等。后面用具体的例子来说明。

3. Syntax

syntax是LDAP中的“语法”,其实就是LDAP中会用到的数据类型和数据约束,这个语法是遵从X.500中数据约束的定义的。其定义需要有一个ID(遵从X.500)以及说明(DESP)


  1. Matching Rules

是用来指定某属性的匹配规则,实际上就是定义一个特殊的Syntax的别名,让LDAP服务器可以识别,并对定义的属性进行匹配

安装配置LDAP

搭建openldap与phpldapadmin_数据库

yum install openldap openldap-clients openldap-servers
service slapd start


初始化LDAP

初始状态下,LDAP是一个空目录,即没有任何数据。可通过程序代码向目录数据库中添加数据,也可使用OpenLDAP客户端工具ldapadd命令来完成添加数据的操作,该命令可将一个LDIF文件中的条目添加到目录。因此,需要首先创建一个LDIF文件,然后再进行添加操作。

生成 LDAP 管理员SSHA口令

这里用123456作示例,注意生成的ssha,后续要用到

slappasswd -h {SSHA} -s 123456
{SSHA}miSysgq9/+ss47VncHRuqyhaHJ2oLI+7

配置管理员信息与DC

OpenLDAP服务器配置文件位于 /etc/openldap/slapd.d/ 。要开始配置LDAP,我们需要更新变量 “olcSuffix” 和 “olcRootDN“

olcSuffix - 数据库后缀,它是LDAP服务器提供信息的域名。简单来说,更改为自己的域名。

olcRootDN - 具有对LDAP执行所有管理活动的无限制访问权限的用户的根专有名称(DN)条目,如root用户。

olcRootPW - 上述RootDN的LDAP管理员口令。

以上条目需要在/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif文件中更新。建议不要手动编辑LDAP配置,因为每次运行ldapmodify命令时都会丢失更改。

使用单独配置进行配置和导入到 LDAP

ldif文件的空格 空格不可忽略

第一段中olcSuffix 修改为自己的dc,一般是自己的组织域名

第二段中olcRootDN 设定管理员DN

第三段中olcRootPW修改为上一条命令中生成密文,即管理员口令

cat > 01initDB.ldif << EOF
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=xxx,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=xxx,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}miSysgq9/+ss47VncHRuqyhaHJ2oLI+7
EOF

执行修改

ldapmodify -Y EXTERNAL -H ldapi:/// -f 01initDB.ldif

参考    https://blog.csdn.net/u011607971/article/details/86061767

以上操作,算是完成LDAP管理员账户的初始化 即cn=admin,dc=xxx,dc=com口令为123456

如果将LDAP作为一个账户统一管理工具,我们要做的是


添加schema

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

建立base

建立组织 Base organization 组织单元 organizationalUnit 账号 等 03.ldif

$cat > 03addorg.ldif << EOF
# xxx.com
dn: dc=xxx,dc=com
dc: xxx
o: xxx
objectClass: dcObject
objectClass: organization
#manager
dn: cn=manager ,dc=xxx,dc=com
objectClass: organizationalRole
cn: manager
description: LDAP Manager
# user, xxx.com
dn: ou=user,dc=xxx,dc=com
ou: user
objectClass: organizationalUnit
EOF
ldapadd -f 03addorg.ldif -x -D cn=admin,dc=xxx,dc=com -w 123456
Enter LDAP Password:
adding new entry "dc=xxx,dc=com"

添加单独账户
cat > staff.idlf << EOF
dn: cn=staff,ou=user,dc=xxx,dc=com
cn: neil
description: ooelicloud LDAP entry
displayname: staff
gidnumber: 1000
homedirectory: /home/staff
mail: [email protected]
mobile: 13888888888
objectclass: inetOrgPerson
objectclass: organizationalPerson
objectclass: person
objectclass: posixAccount
objectclass: top
sn: neil
uid: 1001
uidnumber: 1001
userpassword: [email protected]
EOF
ldapadd -f staff.ldif -x -D cn=admin,dc=xxx,dc=com -w 123456


添加单独账户

cat > staff.idlf << EOF
dn: cn=staff,ou=user,dc=xxx,dc=com
cn: neil
description: ooelicloud LDAP entry
displayname: staff
gidnumber: 1000
homedirectory: /home/staff
mail: [email protected]
mobile: 13888888888
objectclass: inetOrgPerson
objectclass: organizationalPerson
objectclass: person
objectclass: posixAccount
objectclass: top
sn: neil
uid: 1001
uidnumber: 1001
userpassword: [email protected]
EOF
ldapadd -f staff.ldif -x -D cn=admin,dc=xxx,dc=com -w 123456


其他常用操作

 测试添加的账户结果

ldapsearch -D "cn=manager,dc=xxx,dc=com" -w 123456 -h 127.0.0.1 -b "dc=xxx,dc=com"


修改用户口令

ldappasswd -s guoguo -W -D "cn=manager,dc=xxx,dc=com" -x "cn=guoguo,ou=user,dc=tangotz,dc=com" -h ldap.tangotz.com

-s: 指定用户名的口令

-x: 指定的DN

-D: 要对LDAP服务器进行身份验证的可分辨名称



PhpLDAPAdmin的搭建

安装

yum install epel-release
yum install httpd phpldapadmin -y


配置phpldapadmin

1)修改phpldapadmin的配置文件,访问控制权限

vim /etc/httpd/conf.d/phpldapadmin.conf,允许谁访问

添加:

Require all granted

Allow from all

搭建openldap与phpldapadmin_服务器_02



2)修改配置文件:vim /etc/phpldapadmin/config.php

$servers->setValue('login','attr','dn');    这一行的注释去掉

//$servers->setValue('login','attr','uid');  这一行注释掉


3)重启httpd服务

service httpd restart

访问phpldapadmin

在浏览器输入OpenLDAP服务端的IP

例如:   http://IP/phpldapadmin


转载处:搭建openldap与phpldapadmin_51CTO博客_openldap phpldapadmin


标签:phpldapadmin,dc,openldap,LDAP,ldif,搭建,属性
From: https://blog.51cto.com/u_15703497/6251904

相关文章

  • UIOTOS:一款无门槛的前端0代码搭建工具
    什么是UIOTOS?UIOTOS中文名称前端大师,是一款基于图形技术的前端0代码工具,支持通过连线和嵌套无门槛来搭建各类复杂的的交互界面,包括后台管理系统、组态数据大屏等,实现跟代码开发媲美的效果。为什么要做?前端技术更新快,开发和学习成本高在软件开发领域,UI界面开发技术更新迭代最......
  • openGauss 5.0 一主两从 复制环境 搭建手册
    openGauss5.0一主两从复制环境搭建手册2023-04-0713:49850原创openGauss本文链接:https://www.cndba.cn/dave/article/116528在之前的博客我们了解了单机版的openGauss安装。 Linux7.6平台openGauss3.1.1单机版安装手册https://www.cndba.cn/dave/article/116......
  • golang的vscode环境搭建
    因为墙的原因,vscode安装go插件会有报错,需要切换成国内的镜像 GOPROXYhttps://proxy.golang.com.cn,direct ......
  • 【Angular2】搭建开发环境
    一、前言      随着前端工程化的浪潮到来,最近公司的新项目需要使用Angular2作为前端的开发语言。当然小编之前是没有接触的,而且Angular2也是在AngularJs的基础上发展出来的。但是官网说他们相同的地方不多,事实证明确实不多。但是经过小编几个月的研究也是很快就是上手了Angul......
  • 零代码基础,一分钟教你快速搭建微信ChatGPT机器人!
    本教程收集于:ChatGPT聊天机器人搭建全攻略汇总:精心整理Github登录账号后,先Forck下仓库:https://github.com/zhayujie/chatgpt-on-wechat功能介绍:多端部署:有多种部署方式可选择且功能完备,目前已支持个人微信,微信公众号和企业微信应用等部署方式基础对话:私聊及群聊的消息智能......
  • 基于 EKS Fargate 搭建微服务性能分析系统
     背景近期AmazonFargate在中国区正式落地,因Fargate使用Serverless架构,更加适合对性能要求不敏感的服务使用,Pyroscope是一款基于Golang开发的应用程序性能分析工具,Pyroscope的服务端为无状态服务且性能要求不敏感,使用EKSFargate搭建Pyroscope,Pyroscope的客户端......
  • Tapdata 的 ∞ 实践:中小企业如何轻量、高效地搭建起一个灵活易用的数字化平台
    数字化浪潮的裹挟下,企业的转型之路正在变得愈加清晰。然而在数字化转型这条企业生存和发展的必由之路上,更易受到市场变化冲击、所处环境竞争压力更大的中小企业无疑在面临更多的困难和挑战。一方面,中小企业为了顺应时代潮流、适应市场需求,需要积极采取措施,推进数字化转型,实现自......
  • 搭建keepalived+LVS+nginx高可用集群负载均衡
    在LVS服务器上安装Keepalived,参考(https://www.cnblogs.com/xiaodunan/p/17374699.html)修改核心配置文件cd/etc/keepalived/vimkeepalived.confglobal_defs{router_idLVS_1}vrrp_instanceVI_1{stateMASTERinterfaceeth0virtual_router_id41......
  • CentOS7搭建LAMP环境
    一、LMAP版本VMware版本:16.2.4Linux版本:CentOS7.7Apache版本:Apache2.4.6MySQL版本:MySQL5.6.51PHP版本:PHP7.2.34二、Apache环境配置1.安装配置LAMP环境需要的辅助工具(vim、tmux和wget)yuminstallvimtmuxwget-y2.安装Apache(×)yum-yinstallhttpd......
  • spring cloud、gradle、父子项目、微服务框架搭建---搭建父子级多模块项目,并注册到Eu
    一、新建一个父级gradl模块1.在桌面或新建文件里面,右键,打开IDEA选择Flie>NEW>Module选择Gradle,选择ModuleSDK1.8,选择Java创建完成后,idea中会多出一个项目,如下图示例然后直接关闭当前idea,进入刚才创建好的文件下,再次打开项目可以直接删除src目录二、新建子级gradl模......