一、什么是LDAP?

1、在介绍什么是LDAP之前,我们了解一个东西:“什么是目录服务?”

1.1目录服务是一个特殊的数据库,用来保存描述性的、基于属性的详细信息,支持过滤功能。

1.2是动态的,灵活的,易扩展的。

如:人员组织管理,电话簿,地址簿。

2、了解完目录服务后,我们再来看看LDAP的介绍:

LDAP(Light Directory Access Portocol),它是基于X.500标准的轻量级目录访问协议。

目录是一个为查询、浏览和搜索而优化的数据库,它成树状结构组织数据,类似文件目录一样。

目录数据库和关系数据库不同,它有优异的读性能,但写性能差,并且没有事务处理、回滚等复杂功能,不适于存储修改频繁的数据。所以目录天生是用来查询的,就好象它的名字一样。

LDAP目录服务是由目录数据库和一套访问协议组成的系统。

3、为什么要使用

LDAP是开放的Internet标准,支持跨平台的Internet协议,在业界中得到广泛认可的,并且市场上或者开源社区上的大多产品都加入了对LDAP的支持,因此对于这类系统,不需单独定制,只需要通过LDAP做简单的配置就可以与服务器做认证交互。“简单粗暴”,可以大大降低重复开发和对接的成本。

组织架构图

二、OpenLDAP

上边介绍了LDAP只是一个协议,基于这个协议实现服务器端程序有OpenLDAP、Active Directory(微软的域控制器)等等。

1、部署OpenLDAP

部署环境:新睿云Debian 8.4镜像系统

1.1安装OpenLDAP,OpenLDAP服务端程序叫slapd

# apt-get install -y slapd

1.2安装完成之后,会自动生成一个OpenLDAP的系统账号

# cat /etc/passwd

openldap:x:110:115:OpenLDAP Server Account,,,:/var/lib/ldap:/bin/false

1.3生成OpenLDAP管理员账号的密码(后边修改配置文件需要使用)

# slappasswd

New password:

Re-enter new password:

{SSHA}TpWoSebaT5gKy2Y3EHmZh+Wc0hJaFp7y

1.4新建OpenLDAP配置文件

# cp /usr/share/slapd/slapd.conf /etc/ldap/

# 配置文件中有很多@xxx@的配置替换为真实配置

# slaptest -f /etc/ldap/slapd.conf

5ad9b19d /etc/ldap/slapd.conf: line 105: rootdn is always granted unlimited privileges.

5ad9b19d /etc/ldap/slapd.conf: line 122: rootdn is always granted unlimited privileges.

config file testing succeeded

配置文件重要参数说明(需要自己修改的,其他未提到的可以不修改):

database bdb:定义使用的后端数据存储格式,数据库默认采用了berkeley db,其后可以跟的值有bdb、ldbm、passwd、shell。bdb指使用Berkley DB 4数据库

suffix "dc=163,dc=com":suffix是"LDAP基准名",它是LDAP名字空间在这里的根。设置想要创建的子树的根DN

rootdn "cn=admin,dc=163,dc=com":设置管理LDAP目录的超级用户的DN。这个用户名不要出现在/etc/passwd文件里

rootpw {SSHA}TpWoSebaT5gKy2Y3EHmZh+Wc0hJaFp7y:设置这个数据库的超级用户的口令验证方式。也就是上边rootdn设置的用户的密码。一定要用加密的口令存储,可以使用的加密方式有:CRYPT、MD5、SMD5、SHA和SSHA,就是我们第三部生成的密码

directory /var/lib/ldap:设置LDAP数据库和索引文件所在的目录

access to:权限配置下边详细说明

1.5删除原配置,生成新配置

# rm -rf /etc/ldap/slapd.d/*

# slaptest -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d/

# 给新生成的配置文件赋予openldap的权限

# chown -R openldap.openldap /etc/ldap/slapd.d/

1.6重启openldap

# /etc/init.d/slapd restart

ACL权限控制

ACL访问指令的格式:

access to [what]

by [who] [control]

简单解释:通过access to约束我们访问的范围(what),通过by设定哪个用户(who)有什么权限(control)

ACL的详细配置还是比较复杂的,可以看下下边参考文档的第三篇,写的比较详细,这里都不再赘述。

线上ACL控制配置解析

为了用户能够自主修改密码,部署了lam给用户使用(见下文lam介绍)。希望能达到的效果是:

管理员能够有全部权限,包含新建用户,修改用户属性,充值用户密码等

普通用户只能修改自己的密码,别的权限都没有

配置如下:

# access to attrs=userPassword通过属性找到访问范围密码,

# 超级管理员也就是我们ldap配置文件里写的rootdn:"cn=admin,dc=163,dc=com"有写(write)权限;

# 由于管理员可能不止一个,我创建了个管理员组"ou=Admin,dc=163,dc=com"把管理员统一都放到这个组下,管理员组下的所有用户(dn.children)有写权限;

# 匿名用户(anonymous)要通过验证(auth);

# 自己(self)有对自己密码的写(write)权限,其他人(*)都没有权限(none).

access to attrs=userPassword,shadowLastChange

by dn="cn=admin,dc=163,dc=com" write

by dn.children="ou=Admin,dc=163,dc=com" write

by anonymous auth

by self write

by * none

# access to * 所有其他属性,

# 超级管理员rootdn:"cn=admin,dc=163,dc=com"有写(write)权限;

# 管理员"ou=Admin,dc=163,dc=com"成员有写(write)权限;

# 其他人(*)只有读(read)权限

access to *

by dn="cn=admin,dc=163,dc=com" write

by dn.children="ou=Admin,dc=163,dc=com" write

by * read

备份和还原

备份

# ldapsearch -x -b "dc=163,dc=com" -D "uid=authz,ou=Public,dc=163,dc=com" -w "AzdfD863M4" > ldap.20180626.ldif

参数说明:

-x:进行简单的验证

-D:用来绑定服务器的DN

-w:绑定DN的密码

-b:要查询的根节点

authz账号要有"dc=163,dc=com"的查询权限

还原

# ldapadd -x -c -D "cn=admin,dc=163,dc=com" -w "smile" -f ldap.20180626.ldif

参数说明:

-c:出错后继续执行程序不终止,默认出错即停止

-f:从文件内读取信息还原,而不是标准输入

还原的DN最好为管理员账号,至少也要有要LDAP的写入权限

web管理工具

用了phpldapadmin和ldap-account-management(简称lam)两款web管理工具,强烈推荐lam,所以这里就不介绍其他的了

ldap-account-manager

2、安装

1.1安装ldap-account-management

# apt-get install ldap-account-manager

1.2浏览器访问

http://ip/lam

三、LAM配置

1、下载安装LAM

从官方网站下载文件 http://sourceforge.net/projects/lam/

#tar xvf ldap-account-manager-5.0.tar.bz2 (下载的时候要选择好版本,较高版本的要求php5.4以上,5.0没有要求)

#mv ldap-account-manager-4.8 /data/server/lam  (我这里用的是nginx做web服务器,如果用apache就移动到/var/www/html/lam)

#chownwww.www-R  /data/server/lam  (授权用户取决于nginx的配置,apache记得授权给apache用户)

2、修改配置文件

#cd /data/server/lam/config

#mv config.cfg_sample  config.cfg

#mv samba3.conf.sample  lam.conf

#vim lam.conf

LAM配置

修改没有注释的dc信息

dc=test,dc=com (这个是按照你的ldap来设置的)

3、启动web服务器并访问

http://部署机器的IP/lam

4、设置Manager账户登录

4.1选择右上角LAM配置

浏览器LAM配置1

4.2编辑服务器配置文件

浏览器LAM配置2

浏览器LAM配置3

(如果你没有改config.cfg 和lam.conf中的密码,这个默认是lam;改了就是你改过的密码)

4.3安全设定 -> 登录方式

修改为固定列表 cn=Manager,dc=test,dc=com

浏览器LAM配置4

返回登录就ok了!

ldap服务器配置信息错误,ldap服务器概念配置看这一文就够了!相关推荐

  1. ldap服务器配置信息错误,客户域控启用了LDAP服务器签名要求导致配置域信息失败...

    [故障类型]:配置域信息失败 [关 键 词]:ldap,域策略 [适用版本]:FusionCloud Solution V100R006C00 [问题现象]: 在FusionAccess上添加客户的域 ...

  2. ldap服务器配置信息错误,OpenLDAP配置错误ldap_bind:无效的凭据(49)

    我使用的是Ubuntu 10.4服务器,我试图将OpenLDAP配置为SVN和其他服务的身份验证协议.但我不明白如何ldap的作品,并设置了一个示例配置后,我试图填充它没有成功.这是错误:OpenLD ...

  3. ldap服务器配置信息错误,技巧:排除LDAP主机服务器故障的两种方法

    轻量级目录访问协议(LDAP) 允许你拥有一个主服务器+从服务器设置,拥有一旦发生故障时的容错功能或者分散工作量的功能.这拥有明显的优势.但是,它也隐藏了主服务器的一些问题. 如果你的主服务器关机,从 ...

  4. http隐藏服务器相关配置信息,apache web服务器安全配置

    尽管现在购买的云服务器很多都有一键web环境安装包,但是如果是自己配置web环境则需要对各种安全配置十分了解,今天我们就来尝试这做好web服务器安全配置.这里的配置不尽完善,若有纰漏之处还望指出. 修 ...

  5. linux下开启dhcp服务器配置,CentOS下DHCP服务器的配置

    今天在做一个小项目的时候突然需要用到DHCP服务器,在这里就为大家简单的介绍一下吧! 我用的是CentOS作为DHCP服务器的.首先,需要通过yum来安装DHCP,这个很简单,这里就不为大家详细说明了 ...

  6. 方舟服务器网络信息错误,明日方舟网络安全配置初始化失败请重试\n错误号-1解决办法...

    在明日方舟开启第五章的今天,不少玩家都遇到了"网络安全配置初始化失败,请重试\n错误号-1"这样的问题,下面就跟小编一起去看看网络安全配置初始化失败,请重试\n错误号-1解决方法吧 ...

  7. 帝国网站管理服务器配置信息,帝国cms 服务器设置

    帝国cms 服务器设置 内容精选 换一换 简要介绍Joomla是一个屡获殊荣的内容管理系统(CMS),它使您能够构建网站和强大的在线应用程序.这些年来,Joomla已经获得过多个奖项.它构建在&quo ...

  8. 隐藏版本信息号返回服务器名,配置服务器版本信息隐藏

    vi /etc/httpd.conf Include conf/extra/httpd-default.conf //去掉注释 cd /usr/local/httpd/conf/ vi extra/h ...

  9. 超时空机战服务器配置信息错误,超时空机战熔炉篇FAQ教你如何合理的使用熔炉...

    在超时空机战这款游戏中,有一处是叫做熔炉的地方,在其中可以分解物品得到其他的物品,可是怎么才能更好的利用熔炉分解物品达到资源合理利用的地步呢,接下来就和小编一起分析一下吧. 1.什么是熔炉,熔炉在哪里 ...

  10. 超时空机战服务器配置信息错误,大神解答超时空机战常见问题 新手福利篇

    在超时空机战这款游戏中,很多玩家在一开始玩这款游戏时都存在着各种各样的问题,小编一天最高能收到近百条疑问,接下来小编就常见问题向大家解答一下,希望大家喜欢. 游戏中的敌人有哪几种? 种类上敌人可以分为 ...

最新文章

  1. 2014年工作中遇到的10个问题:221-230
  2. Unity2D游戏开发基础教程1.2项目、资源和场景
  3. GitHub上如何进行PR(Pull Request)操作——简版
  4. ubuntu16.04无法连接WiFi搜索不到网络网卡驱动
  5. 蒸汽管道图纸符号_蒸汽管道疏水阀图标怎么画法
  6. uva 11387——The 3-Regular Graph
  7. 【形式语言与自动机】有限状态机
  8. 北航微软提出新型数据集TableBank,从图像中检测和识别表格
  9. bd3.1 Python 高级
  10. Spark基础学习笔记05:搭建Spark Standalone模式的集群
  11. 关于Python ord()和chr()返回ASCII码和Unicode码的看法
  12. SSL-ZYC 2402 世界语
  13. 应云而生,原力觉醒——解读云原生基础设施 | 凌云时刻
  14. RPLIDAR最强参数详解
  15. java获取一段话的首字母或拼音
  16. GIS应用技巧之去除遥感影像黑边
  17. 常用电路基础公式换算
  18. 8583协议报文例子。
  19. chrome去广告插件
  20. pageX,clientX,offsetLeft,scrollLeft的区别

热门文章

  1. struct+Matlab向上向下取整+单位圆向量+matlab求导
  2. wechat sdk java_使用java集成微信支付sdk。
  3. C#调用触摸屏小键盘
  4. 海外引流怎么做?巨象指纹浏览器助你,人人都是产品经理
  5. 如何通过知识付费盈利,实现内容变现?
  6. 【文献调研】SLAM方向综述性论文
  7. 睦星科技Kolmostar获1000万美元 A 轮融资,将推出更多元的GNSS定位解决方案
  8. 【数字图像处理】图像滤波C语言实现(中值,均值,高斯)
  9. 节理玫瑰花图怎么画_利用Excel软件绘制节理走向玫瑰花图
  10. 公网与私网地址转换——NAT技术的使用小技巧,超简单!!!