授权管理-LDAP-介绍与环境搭建
LDAP介绍
转自:https://blog.csdn.net/tanshizhen119/article/details/79942315
还是先来百度百科介绍。
LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。它是基于X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。
以前我也就听了一下公司里主要是用来存放用户的信息,然后用来做统一认证的。ldap协议是一个标准解析,所以好多开源软件都支持ldap,gerrit,gitlab,redmine,jenkins等等等,好多好多。我这个专题主要是面向开源的系统,所以ldap是一个基础。
先来个图:
PS:安装的是否我选择的是LDIF存储格式。
大概就是这样,存储就像一棵树一样,一级一级的,最里面的那层存储的最详细的信息。例如:
dc=maxcrc,dc=com—— maxcrc公司
ou=people——people部门
cn=devops+displayName....uid=100001+user——这个是员工的具体信息
dc, ou,cn, uid都有明确的定义,而且是标准的。这个我们会在ldap schema文件里再说明一下。
网上关于ldap的文章也很多,ldap还有好多的高级用法,可以用来管理好多的数据,最基本的功能就是存储信息。
如果想要深入学习的,可以下载这本书下来看看 《Linux+UNIX+OpenLDAP实战指南》 密码:cdjj
感觉还可以。
优点:
1. 速度快,分布式。
2. 标准协议,可以适用在很多场景,而且集成成本低。
3. 是一个非常成熟的产品,网上的资料,用法都很多,学习成本低(不过开发的可能了解的不多,偏运维应该是了解得透透的吧)
LDAP环境搭建
hub镜像地址: osixia/openldap
github地址:https://github.com/osixia/docker-openldap 这上面会对此docker镜像有明确的说明,包括如何运行。各种场景都有,请好好阅读。
下载docker镜像命令:docker pull osixia/openldap
运行命令:docker run --name ldap --env LDAP_ORGANISATION="shanktech" --env LDAP_DOMAIN="shanktech.com" --env LDAP_ADMIN_PASSWORD="123456" -p 389:389 -p 636:639 --detach osixia/openldap:1.2.0
此命令我们没有对目录进行映射,所以当docker运行结束后,产生的所有数据会丢失。
如果不想用docker运行,也可以再官网上下载安装包进行安装。在windows上也是可以进行安装。
openldap for windows 下载地址 这个安装就很简单了,下一步下一步即可.
在osixia/openldap docker容器里使用的是MDB格式。
运行docker run命令后ldap服务就起来了。
这边推荐一个客户端 ApacheDirectoryStudio 可以直接点击下载,基于java eclipse写的,运行起来和eclipse差不多。
创建LDAP连接
上图
1. 输入ip 因为没有改端口所以使用的是默认端口。
2. 输入用户名和密码登录
我们在运行docker run命令的时候设置了环境变量。
-env LDAP_ORGANISATION="shanktech"
--env LDAP_DOMAIN="shanktech.com"
--env LDAP_ADMIN_PASSWORD="123456"
所以登录LDAP的用户名和密码为 用户名:cn=admin,dc=shanktech,dc=com 密码为123456
3.插入新数据
上一波图,不过相信,不用看图大家也可以做出来。第一次接触ldap, 昨天自己摸索了好久,不过经过学习发现了自己迷茫的圆心,主要在schema, objectcalss, atrr不是很理解导致的。下面我会对进行详细的解释,因为这个在网上没有,至少我没有搜索到。
这样就插入了一条数据。
LDAP说明重点知识介绍
在回顾一下LDAP存储格式,是以一种树状的格式存储的。在我的理解,ldap是先定义了一个树状数据结构,在叶子节点上定义了专属的属性。这些定义是通过schema文件来体现的,我们来举一个例子如下图:
schema文件就是放了这些定义的信息的。(ldap有高级的玩法,就是自己自定义schema文件,自己定义节点。当然这不能乱定义的,要在扩展节点上定义自己的叶子节点属性,看到这些让我想起了简单网络管理协议SNMP)
接下来我们再谈一下ObjectClass和attr的关系。
其实看这个ldap这个树状结构,属性与属性之间个独立,分散,像是一个个特征一样。Objectclass是将这些有关联关系的特征组织起来,定义成一个模板。让你去好组织数据。这个和我们常说面向的对象编程里的class, 属性一致。ldap这里的属性与class都是标准定义的而已。下图对Objectclass大概解释了一下。
使用LDAP认证登录Gerrit系统
1. 首先将Gerrit认证换成LDAP
在gerrit.config中修改配置,然后重启。
[auth]
type = LDAP
[ldap]
server = ldap://192.168.2.189
accountBase = dc=shanktech,dc=com
accountPattern = (&(objectClass=person)(uid=${username}))
accountFullName = displayName
accountEmailAddress = mail
username = cn=admin,dc=shanktech,dc=com
password = 123456
如下图:
然后登录成功
写的这些都是很基本的功能,先不打算深入了,我是计划着先把所有的工具都跑一遍,然后再逐渐的深入。
授权管理-LDAP-介绍与环境搭建的更多相关文章
- Python介绍及环境搭建
摘自http://www.cnblogs.com/sanzangTst/p/7278337.html Python零基础学习系列之二--Python介绍及环境搭建 1-1.Python简介: Py ...
- Maven介绍及环境搭建
Maven介绍及环境搭建 Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建.报告和文档的软件项目管理工具. 下载Maven boot:类加载器框架,Maven使用它加在自 ...
- Maven快速入门(一)Maven介绍及环境搭建
做开发的程序员都知道,在系统开发需要各自各样的框架.工具.其中有一种工具不管你是初级程序员还是高级程序员都必须熟练掌握的,那就是项目管理工具(maven.ant.gradle).接下来就总结Maven ...
- Django 01 django基本介绍及环境搭建
Django 01 django基本介绍及环境搭建 #http服务器 #用来接收用户请求,并将请求转发给web应用框架进行处理 #Web应用框架 #处理完请求后在发送给http服务器,http服务器在 ...
- [springboot 开发单体web shop] 1. 前言介绍和环境搭建
前言介绍和环境搭建 简述 springboot 本身是为了做服务化用的,我们为什么要反其道使用它来开发一份单体web应用呢? 在我们现实的开发工作中,还有大量的业务系统使用的是单体应用,特别是对于中小 ...
- App自动化测试-1.App自动化介绍和环境搭建
App自动化测试-1.App自动化介绍和环境搭建 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-b ...
- 使用WIF实现单点登录Part I——Windows Identity Foundation介绍及环境搭建
首先先说一下什么是WIF(Windows Identity Foundation).由于各种历史原因,身份验证和标识的管理一般都比较无规律可循.在软件里加入“身份验证”功能意味着要在你的代码里混进处理 ...
- 使用WIF实现单点登录Part I——Windows Identity Foundation介绍及环境搭建 -摘自网络
上个月有一个星期的时间都在研究asp.net mvc统一身份验证及单点登录的实现.经过了一番的探索,最终决定使用微软的Windows Identity Foundation.但是这东西用的人貌似不多, ...
- UI自动化测试简介及Selenium工具的介绍和环境搭建
自动化测试简介 1.1何为自动化测试? 是把以人为驱动的测试转化为机器执行的一种过程,它是一种以程序测试程序的过程.换言之,就是以程序实现的方式来代替手工测试. 1.2自动化测试分类 分为功能自动化测 ...
随机推荐
- 领域驱动设计学习之路—DDD的原则与实践
本文是我学习Scott Millett & Nick Tune编著的<领域驱动设计模式.原理与实践>一书的学习笔记,一共会分为4个部分如下,此文为第1部分: ① 领域驱动设计的原则 ...
- 带着新人看java虚拟机02
上一节是把大概的流程给过了一遍,但是还有很多地方没有说到,后续的慢慢会涉及到,敬请期待! 这次我们说说垃圾收集器,又名gc,顾名思义,就是收集垃圾的容器,那什么是垃圾呢?在我们这里指的就是堆中那些没人 ...
- KnockoutJS知识规整目录
对于Web开发来讲,前端接触是避免不了的,特别是对于中小公司,没有严格的职位区分,前后端人员互相身兼是常有的事情,使用一些好的框架,能够帮助我们快速开发并完成需要的功能,对于前端的JS框架来讲MVVM ...
- 前端笔记之ES678&Webpack&Babel(上)初识ES678&Babel&let和const&解构&语法
一.ES版本简介和调试运行方法 1.1 ECMAScript简介 MDN手册:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript JavaS ...
- KnockOut 绑定之foreach绑定
foreach绑定对于数组中的每一个元素复制一节标记语言,也就是html,并且将这节标记语言和数组里面的每一个元素绑定.当我们呈现一组list数据,或者一个表格的时候,十分有用. 如果你绑定的数组是一 ...
- 【原】使用less实现随机下雪动画
元旦在公司撸码,想起圣诞节的摇摇乐项目有段代码挺有意思的,借着空闲的时间把代码抽出来,沉淀下经验.冬天来了,设计师说摇摇乐的场景需要随机下落的雪花动画,第一时间就想到的方法是canvas比较好,项目非 ...
- Fiddler 接口测试(Composer)的使用方法及并发测试
下载地址:https://www.telerik.com/download/fiddler 一.Composer简介 右侧Composer区域,是测试接口的界面: 相关说明: 1.请求方式:点开可以勾 ...
- 浅谈java线程池实现
再进入主题之前,我们先了解几个概念,对读源码有所帮助,对于线程池的运行状态,有4个级别,分别是RUNNING,SHUTING,STOP,TIDING,TERMINATED 解释如下: The runS ...
- asp.net core重新加载应用配置
asp.net core重新加载应用配置 Intro 我把配置放在了数据库或者是Redis里,配置需要修改的时候我要直接修改数据库,然后调用一个接口去重新加载应用配置,于是就尝试写一个运行时重新加载配 ...
- 【技术讨论】RF环境搭建手册
(原创文章,转载请注明出处.) 简要整理下环境搭建的步骤,以便快速.准确的搭建测试环境. 一.环境搭建 一.Python 2.7 1. 不要用Python3.6,很多库3.6中还没有,wxPython ...