前言

接之前我的文章,django+ldap+memcache实现单点登录+统一认证 就单点登录实现过程进行详细记录,ldap是一切的基础,可以把它理解成一个读强写弱的文件类型数据库,统一认证我们通过ldap来实现,里边保存了账户信息。为什么不用其他的关系型数据库呢?我这里的需求是因为在使用的很多软件默认都支持ldap,比如我们后续要接入的svn、vpn、jira等,使用ldap可以更方便一些。

ldap相关部署的文档网上资料比较多,这边就不着重说明了,请参考这篇文章http://www.cnblogs.com/AloneSword/p/4758814.html

写的很细致了,我这边使用的场景是,未使用tls传输加密,配置了openldap的双主(通过mirrormode),通过ldap account manager对用户和组进行管理

补充说明

上边的文章中,lam讲解的相对不多。我这边再补充一些

其实我自己的生产环境最后用的是lam进行管理,全称ldap account manager

先从官网下载rpm

yum install ldap-account-manager-5.5-0.fedora.1.noarch.rpm

对应的配置自动放进了apache的目录里

lam的核心配置在/usr/share/ldap-account-manager/config/lam.conf 但其实这个文件不需要人工编辑,直接从管理页面编辑



基本上所有信息都可以通过页面配置了,这个细说起来篇幅会非常多。因为是中文界面,官网也有demo进行参考,这边就不额外说明如何通过浏览器配置lam本身了。官网:https://www.ldap-account-manager.org/lamcms/

默认lam的登录用户为manager这个是在/etc/openldap/slapd.conf 中配置的,关键参数为rootdn相当于超级管理员,我们为了后续程序调用,可以写入ldap,最好再新建一个ldap可写用户,首先可以通过lam创建一个普通用户,之后在配置文件中授予这个用户更大的权限,之后/etc/init.d/slapd restart

access to *
by dn="uid=ssoadmin,ou=People,dc=ldap,dc=test,dc=net" write
by self write
by users read
by anonymous auth

同时可以在lam中配置一下,以便通过lam的用户可以进行管理



添加一个ssoadmin,这样在登录时就可以选择ssoadmin用户了



当然这个用户的密码是在用户信息里设置的(可通过lam控制),但此用户所有的权限都通过配置文件完成

最终,我的账户类型用的是



属性列表即为lam首页显示的信息,可根据属性列表自己定义,另外我的用户和组的模块是如下配置



ldap可定义的对象类非常的多,可以参考schema浏览器自行学习,选择你需要的类型



这个要说起来,感觉写本书都够了,ldap本身的配置类型还是非常丰富并且复杂的,有兴趣的可以自行学习/etc/openldap/schema目录下的ldif和schema配置,如果自带的配置无法满足需求,也可以自定义ldif,通过自定义schema来生成ldif,这块自我感觉十分复杂,好在我的需求只是需要用户和组的关系,用户的关键信息有邮箱、中文名、用户名(再加个手机)就够了,这样使用inetOrgPerson\posixAccount\posixGroup刚好够用,并且lam默认对posix的2个模块支持的很好,可以较为方便的通过页面设定用户和组关系。





ldap的备份和还原

备份:
ldapsearch -x -b "dc=ldap,dc=test,dc=net" -D "cn=Manager,dc=ldap,dc=test,dc=net" -w "password" > ldap.ldif
删除:
ldapdelete -x -c -D "cn=Manager,dc=ldap,dc=test,dc=net" -w "password" -r 'dc=ldap,dc=test,dc=net'
还原:
ldapadd -x -c -D "cn=Manager,dc=ldap,dc=test,dc=net" -w "password" -f ldap.ldif
因为我的ldap做了mirror,只需在一台还原即可,另一台稍等一会会自动同步

最后附上一个日常备份的脚本,请放在每日2点运行,由于做了双机mirror,不担心某台ldap down机,日常的备份是用于减少误删除数据的损失

#!/bin/bash
rq=$(date +%Y%m%d)
LOG=/Data/shell/ldap_backup/logs/${rq}.log
BACKUPDATA=/Data/shell/ldap_backup/data
BACKUPCMD=/usr/bin/ldapsearch
LDAPUSER="cn=Manager,dc=ldap,dc=test,dc=net"
LDAPPASSWD="password"
LDAPBN="dc=ldap,dc=test,dc=net"
mkdir -p /Data/shell/ldap_backup/logs
fenge="=============="
echo ${fenge} >> ${LOG} mkdir -p $BACKUPDATA/
# backup everyday at 2:00
cd $BACKUPDATA/
$BACKUPCMD -x -b ${LDAPBN} -D ${LDAPUSER} -w ${LDAPPASSWD} > ldap_${rq}.ldif
/bin/tar zcf ldap_${rq}.tar.gz ldap_${rq}.ldif && echo "tar zcf ldap_${rq}.ldif --- [OK]">>${LOG} || echo "tar zcf ldap_${rq}.ldif --- [FAILED]">>${LOG} find $BACKUPDATA -name "*.ldif" -mtime +3 -exec rm -f {} \;
find $BACKUPDATA -name "*.tar.gz" -mtime +30 -exec rm -f {} \;

还原脚本

#!/bin/bash

if [ -z $1 ];then
echo "请输入参数1"
echo "Usage: $0 /Data/shell/ldap_backup/data/ldap_20161110.ldif"
exit 2
fi LOG=/Data/shell/ldap_backup/logs/${rq}.log
BACKUPDATA=/Data/shell/ldap_backup/data
DELCMD=/usr/bin/ldapdelete
RECCMD=/usr/bin/ldapadd
LDAPUSER="cn=Manager,dc=ldap,dc=test,dc=net"
LDAPPASSWD="password"
LDAPBN="dc=ldap,dc=test,dc=net" # delete all
echo "确认删除ldap原有数据并恢复?(y/n)"
read deleteldap
if [[ "$deleteldap" == 'y' ]];then
${DELCMD} -x -c -D ${LDAPUSER} -w ${LDAPPASSWD} -r ${LDAPBN}
# recovery ldap data
${RECCMD} -x -c -D ${LDAPUSER} -w ${LDAPPASSWD} -f $1
fi

参考资料

http://www.cnblogs.com/AloneSword/p/4758814.html

https://segmentfault.com/a/1190000002607140

ldap部署相关,ldap双机\LAM配置管理\ldap备份还原的更多相关文章

  1. ldap配置系列二:jenkins集成ldap

    ldap配置系列二:jenkins集成ldap jenkins简介 jenkins是一个独立的.开放源码的自动化服务器,它可以用于自动化与构建.测试.交付或部署软件相关的各种任务. jenkins官方 ...

  2. ldap配置系列三:grafana集成ldap

    ldap配置系列三:grafana集成ldap grafana的简介 grafana是一个类似kibana的东西,是对来自各种数据源的数据进行实时展示的平台,拥有这牛逼的外观.给一个官方的demo体验 ...

  3. 【运维技术】node项目使用strongloop进行部署相关教程

    node项目使用strongloop进行部署相关教程 安装strongloop 下载安装node 解压到路径完成安装 使用软链方式配置环境变量 添加cnpm的淘宝镜像源 安装node-gyp的模块依赖 ...

  4. CentOS7 下 ldap 部署

    环境准备 # 关闭防火墙以及selinux,生产环境中,以实际需求为准 [root@localhost ~]# hostnamectl --static set-hostname ldap-serve ...

  5. HDP安全之集成kerberos/LDAP、ranger(knox自带LDAP)

    ----------------------目录导航见左上角------------------------------- 环境 HDP 3.0.1.0 (已有) JDK   1.8.0_91 (已有 ...

  6. Spring整合Redis&JSON序列化&Spring/Web项目部署相关

    几种JSON框架用法和效率对比: https://blog.csdn.net/sisyphus_z/article/details/53333925 https://blog.csdn.net/wei ...

  7. 1.scrapyd部署相关问题

    部署scrapy爬虫项目到6800上 启动scrapyd 出现问题 1: scrapyd-deloy -l  未找到相关命令 scrapyd-deploy -l 可以看到当前部署的爬虫项目,但是当我输 ...

  8. ASP.NET站点部署相关

    汤姆大叔的部署指南:http://www.cnblogs.com/TomXu/archive/2011/11/25/2263050.html 中文目录: 部署介绍 --(英文版连接) 部署SQL Se ...

  9. golang 应用的部署相关技术

    nohup命令 在 linux 下面部署,我们可以利用 nohup 命令,把应用部署在后端,如下所示: nohup ./yourapp & 这样你的应用就跑在了 Linux 系统的守护进程 n ...

随机推荐

  1. JavaScript Array对象

    介绍Js的Array 数组对象. 目录 1. 介绍:介绍 Array 数组对象的说明.定义方式以及属性. 2. 实例方法:介绍 Array 对象的实例方法:concat.every.filter.fo ...

  2. .NET平台开源项目速览(13)机器学习组件Accord.NET框架功能介绍

    Accord.NET Framework是在AForge.NET项目的基础上封装和进一步开发而来.因为AForge.NET更注重与一些底层和广度,而Accord.NET Framework更注重与机器 ...

  3. dotNet Core开发环境搭建及简要说明

    一.安装 .NET Core SDK 在 Windows 上使用 .NET Core 的最佳途径:使用Visual Studio. 免费下载地址: Visual Studio Community 20 ...

  4. C#反序列化XML异常:在 XML文档(0, 0)中有一个错误“缺少根元素”

    Q: 在反序列化 Xml 字符串为 Xml 对象时,抛出如下异常. 即在 XML文档(0, 0)中有一个错误:缺少根元素. A: 首先看下代码: StringBuilder sb = new Stri ...

  5. 纸箱堆叠 bzoj 2253

    纸箱堆叠 (1s 128MB) box [问题描述] P 工厂是一个生产纸箱的工厂.纸箱生产线在人工输入三个参数 n, p, a 之后,即可自动化生产三边边长为 (a mod P, a^2 mod p ...

  6. Linux命令【第二篇】

    1.如何过滤出已知当前目录下oldboy中的所有一级目录(提示:不包含oldboy目录下面目录的子目录及隐藏目录,即只能是一级目录). ^:以什么开头,例如^olboy表示以oldboy开头. ls: ...

  7. windows 7(32/64位)GHO安装指南(序篇)~

    大家好,本人是高三刚毕业,即将踏入校园的程序猿~我写这篇文章呢,主要是想巩固一下之前对于电脑的基础知识理论,也希望能帮助没有电脑基础的同学能维护一下自己的电脑,要是能帮助女生修电脑那就是更好啦~~哈哈 ...

  8. 闭区间套定理(Nested intervals theorem)

    ① ②这里用到了极限与不等关系 ③如果a≠b,那么便不会有$\lim _{n\rightarrow \infty }\left| I_n \right| =0$ ④如果还存在一点c在内,那么同样也不会 ...

  9. 搭建一套自己实用的.net架构(3)续 【ORM Dapper+DapperExtensions+Lambda】

    前言 继之前发的帖子[ORM-Dapper+DapperExtensions],对Dapper的扩展代码也进行了改进,同时加入Dapper 对Lambda表达式的支持. 由于之前缺乏对Lambda的知 ...

  10. ola.hallengren的SQL Server维护脚本

    ola.hallengren的SQL Server维护脚本 下载地址 http://files.cnblogs.com/files/lyhabc/ola.hallengrenMaintenanceSo ...