【LDAP】LDAP概念和原理介绍

目录

一、前言

二、什么是LDAP?

2.1 什么是目录服务?

2.2 LDAP的介绍

2.3 为什么要使用LDAP

三、LDAP的主要产品线

四、LDAP的基本模型

4.1 目录树概念

4.2 LDAP常用关键字列表

4.3 objectClass介绍

五、JXplorer工具使用


一、前言


对于许多的朋友来说,可能听说过LDAP,但是实际中对LDAP的了解和具体的原理可能还比较模糊,今天就从“什么是LDAP”、“LDAP的主要产品”、“LDAP的基本模型”、“LDAP的使用案例”四个方面来做一个介绍。

我们在开始介绍之前先来看几个问题:

  1. 我们日常的办公系统是不是有多个,比如OA,财务,jira,gitlab等等
  2. 多个系统之间是不是都有独立的账号密码,密码多了,有时候半天想不起来哪个密码对应哪个系统?
  3. 每次新项目的开发,都需要重新开发和维护一套用户密码?
  4. 维护多套系统的用户是不是非常煎熬?

“LDAP统一认证服务”已经帮助大家解决这些问题了。


二、什么是LDAP?


2.1 什么是目录服务?

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

    2. 是动态的,灵活的,易扩展的。

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

2.2 LDAP的介绍

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

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

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

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

2.3 为什么要使用LDAP

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


三、LDAP的主要产品线


LDAP的中文全称是:轻量级目录访问协议(Lightweight Directory Access Protocol,说到底LDAP仅仅是一个访问协议,那么我们的数据究竟存储在什么地方呢?

如下是实现LDAP的产品:

厂商

产品

介绍

SUN

SUNONE Directory Server

基于文本数据库的存储,速度快 。

IBM

IBM Directory Server

基于DB2 的的数据库,速度一般。

Novell

Novell Directory Server

基于文本数据库的存储,速度快, 不常用到。

Microsoft

Microsoft Active Directory

基于WINDOWS系统用户,对大数据量处理速度一般,但维护容易,生态圈大,管理相对简单。

Opensource

Opensource

OpenLDAP 开源的项目,速度很快,安全且灵活并已经被包含在众多流行的Linux发行版中。

以上产品就是正常存储数据的地方,而访问这些数据就是通过我们上述所说的LDAP协议。


四、LDAP的基本模型


每一个系统、协议都会有属于自己的数据模型,LDAP也不例外,我们先了解几个LDAP的目录树概念:

4.1 目录树概念

1. 目录树在一个目录服务系统中,整个目录信息集可以表示为一个目录信息树,树中的每个节点是一个条目。

2. 条目entry可以被称为条目,一个entry就是一条记录,是LDAP中一个基本的存储单元;也可以被看作是一个DN和一组属性的集合。注意,一条entry可以包含多个objectClass,例如李四可以存在于“电话薄”中,也可以同时存在于“同学录”中。每个条目有自己的唯一可区别的名称(DN)。

3. 对象类与某个实体类型对应的一组属性,对象类是可以继承的,这样父类的必须属性也会被继承下来。

4. 属性Attribute描述条目的某个方面的信息,一个属性由一个属性类型和一个或多个属性值组成,属性有必须属性和非必须属性。每个条目都可以有很多属性(Attribute),比如常见的人都有姓名、地址、电话等属性.每个属性都有名称及对应的值,属性值可以有单个、多个,比如你有多个邮箱.

4.2 LDAP常用关键字列表


LDAP通过属性objectClass来控制哪一个属性必须出现或允许出现在一个条目中,它的值决定了该条目必须遵守的模式规则。DC、UID、OU、CN、SN、DN、RDN。

关键字

英文全称

含义

dc

Domain Component

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

uid

User Id

用户ID songtao.xu(一条记录的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”

4.3 objectClass介绍


LDAP中,一个条目(Entry)必须包含一个对象类(objectClass)属性,且需要赋予至少一个值。每一个值将用作一条LDAP条目进行数据存储的模板;模板中包含了一个条目必须被赋值的属性和可选的属性。

objectClass有着严格的等级之分,最顶层是top和alias。例如,organizationalPerson这个objectClass就隶属于person,而person又隶属于top。

objectClass可分为以下3类:

  • 结构型(Structural):如account、inetOrgPerson、person和organizationUnit;
  • 辅助型(Auxiliary):如extensibeObject;
  • 抽象型(Abstract):如top,抽象型的objectClass不能直接使用。

比如我们有一种叫“电话薄”的objectClass,肯定会内置很多属性(attributes),如姓名(uid),身份证号(uidNumber),单位名称(gid),家庭地址(homeDirectory)等,这些属性(attributes)中,有些是必填的,例如,account就要求userid是必填项,而inetOrgPerson则要求cn(common name,常用名称)和sn(sure name,真实名称)是必填项。


五、JXplorer工具使用


官方地址:JXplorer - an open source LDAP browser

下载完成,双击安装

下一步

下一步

输入安装路径

下一步

安装完成

安装完成后 配置连接

如下图所示,几个比较重要的信息如下:

  • 主机:192.168.2.75(这里也可以直接输入IP地址,根据的你环境输入相应的主机名称即可)
  • 端口:33389(这个端口可以在ldap服务端使用netstat名称查看)
  • 协定:LDAP v3
  • 基底DN:dc=hadoop,dc=apache,dc=org
  • 层次:用户 + 密码
  • 使用者DN:uid=admin,ou=people,dc=hadoop,dc=apache,dc=org
  • 密码:admin-password

使用模板:点击存储自定义一个名称即可,下次可以直接选中这个模板链接对应的目录结构。

组织

如下图是admin用户

也可以用工具编辑属性


参考文档

LDAP概念和原理介绍:LDAP概念和原理介绍 - WilburXu - 博客园

LDAP介绍及使用:LDAP介绍及使用-CSDN博客

LDAP认证: LDAP认证-CSDN博客

Hadoop生态圈-Knox网关的应用案例:

Hadoop生态圈-Knox网关的应用案例 - 尹正杰 - 博客园

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/937677.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

用ue5打开网址链接

需要用到 Launch URL 这个函数 字面意思就是打开填写的链接网页 这里填写的是百度,按下Tab键后就会打开百度的网页

在ESP32使用AT指令集与服务器进行TCP/IP通信时,<link ID> 解释

在ESP32使用AT指令集与服务器进行TCP/IP通信时&#xff0c;<link ID> 是一个非常重要的参数。它用于标识不同的连接实例&#xff0c;特别是在多连接场景下&#xff08;如同时建立多个TCP或UDP连接&#xff09;。每个连接都有唯一的<link ID>&#xff0c;通过这个ID…

前后端跨域问题(CROS)

前端 在src中创建util文件&#xff0c;写request.js文件&#xff1a; request.js代码如下&#xff1a; import axios from axios import { ElMessage } from element-plus;const request axios.create({// baseURL: /api, // 注意&#xff01;&#xff01; 这里是全局统一加…

学习笔记071——Java中的【线程】

文章目录 1、基础2、进程和线程3、什么是多线程4、Java 中线程的使用5、Java 中创建线程的方式5.1、继承 Thread 类5.2、实现 Runnable 接口5.3、继承 Thread 和实现 Runnable 接口的区别5.4、实现 Runnable 接口的优化 6、线程的状态7、线程调度7.1、线程休眠7.2、线程合并7.3…

devops-部署Harbor实现私有Docker镜像仓库

文章目录 概述下载配置安装安装后生成的文件使用和维护Harbor参考资料 概述 Harbor是一个开源注册中心&#xff0c;它使用策略和基于角色的访问控制来保护工件&#xff0c;确保镜像被扫描并且没有漏洞&#xff0c;并将镜像签名为可信的。Harbor是CNCF的一个毕业项目&#xff0…

快速上手Neo4j图关系数据库

参考视频&#xff1a; 【IT老齐589】快速上手Neo4j网状关系图库 1 Neo4j简介 Neo4j是一个图数据库&#xff0c;是知识图谱的基础 在Neo4j中&#xff0c;数据的基本构建块包括&#xff1a; 节点(Nodes)关系(Relationships)属性(Properties)标签(Labels) 1.1 节点(Nodes) 节点…

Polkadot 11 月生态月报:3900万交易量、69%增长率,技术与社区齐头并进

原文&#xff1a;https://x.com/Polkadot/status/1865118662069490074 编译&#xff1a;OneBlock 上个月对 Polkadot 生态来说可谓是跌宕起伏&#xff0c;从创下交易记录到开创性合作&#xff0c;Polkadot 热度不断。展现出强大的技术实力和蓬勃发展的社区活力。在回顾本月亮点…

基坑表面位移沉降倾斜自动化监测 非接触式一体化解决机器视觉

基于变焦视觉位移监测仪的基坑自动化监测新方案是一种集成了光学、机械、电子、边缘计算、AI识别以及云平台软件等技术的自动化系统。该方案利用变焦机器视觉原理&#xff0c;结合特殊波段成像识别技术和无源靶标&#xff0c;实现了非接触式大空间、多断面、多测点的高精度水平…

CSS学习-第三天

css链接 链接样式&#xff0c;可以使用任何css属性 特别的样式&#xff0c;可以有不同的样式 a:link - 正常&#xff0c;未访问过的链接 a:visited - 用户已访问过的链接 a:hover - 当用户鼠标放在链接上时 a:active - 链接被点击的那一刻 a:hover必须跟在a:link和a:visited后…

电脑显示器选购指南2024

选择显示器是五花八门的显示参数&#xff0c;如何选择&#xff0c;以下给出参数说明&#xff0c;及部分参考&#xff1a; 1. 尺寸和分辨率 尺寸&#xff08;英寸&#xff09; 根据使用距离和用途选择合适的屏幕尺寸&#xff1a; 21-24 英寸&#xff1a;适合小桌面空间、日常…

快速掌握C语言——数据结构【创建顺序表】多文件编译

1.数据结构脑图&#xff08;未完&#xff09; 2.顺序表其他操作 3.功能函数封装 4 完整代码 1>头文件test.h #ifndef __TEST_H__ #define __TEST_H__#include<stdlib.h> #include<stdio.h> #include<string.h>//宏定义 线性表的最大容量 #define MAX 3…

Linux 中的 mkdir 命令:深入解析

在 Linux 系统中&#xff0c;mkdir 命令用于创建目录。它是文件系统管理中最基础的命令之一&#xff0c;广泛应用于日常操作和系统管理中。本文将深入探讨 mkdir 命令的功能、使用场景、高级技巧&#xff0c;并结合 GNU Coreutils 的源码进行详细分析。 1. mkdir 命令的基本用法…

STM32F407+LAN8720A +LWIP +FreeRTOS UDP通讯

STM32F407+LAN8720A +LWIP +FreeRTOS ping通 上一篇实现了LWIP ping 通 本篇实现UDP通讯 实现如下功能: 串口1空闲中断+DMA接收,收到数据用UDP发送UDP接收,收到数据用串口1发送STM32CUBEIDE配置和代码 1. 配置UARAT1的空闲中断+DMA接收 UART1接收到数据,释放信号量,在任…

【蓝桥杯选拔赛真题94】Scratch巡逻的直升机 第十五届蓝桥杯scratch图形化编程 少儿编程创意编程选拔赛真题解析

目录 scratch巡逻的直升机 一、题目要求 编程实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、解题思路 1、思路分析 2、详细过程 四、程序编写 五、考点分析 六、推荐资料 1、入门基础 2、蓝桥杯比赛 3、考级资料 4、视频课程 5、python资料 sc…

非前后端分离项目,通过拦截器,对前端发送网络访问地址

一、背景 在非前后端分离的web应用开发过程中&#xff0c;在html中不可避免的需要请求项目地址去访问接口或者静态资源&#xff0c;但是开发环境、测试环境以及生产环境不同&#xff0c;地址也不同&#xff0c;避免频繁修改代码&#xff0c;可以通过自动获取访问地址通过拦截器…

人工智能大语言模型起源篇(一),从哪里开始

序言&#xff1a;许多人最初接触人工智能都是在ChatGPT火热之际&#xff0c;并且大多停留在应用层面。对于希望了解其技术根源的人来说&#xff0c;往往难以找到方向。因此&#xff0c;我们编写了《人工智能大语言模型起源篇》&#xff0c;旨在帮助读者找到正确的学习路径&…

FFmpeg功能使用

步骤&#xff1a;1&#xff0c;安装FFmpeg Download FFmpeg 在这里点击->Windows builds from gyan.dev&#xff1b;如下图 会跳到另外的下载界面&#xff1a; 在里面下拉选择点击ffmpeg-7.1-essentials_build.zip&#xff1a; 即可下载到FFmpeg&#xff1b; 使用&#…

【Unity基础】Unity中如何实现图形倒计时

为了在Unity中实现一个图形倒计时&#xff0c;除了代码部分&#xff0c;还需要一些UI元素的创建和设置。本文以环形倒计时为例&#xff0c;以下是完整的步骤&#xff0c;涵盖了如何创建UI元素、设置它们&#xff0c;以及如何编写控制环形倒计时进度的脚本。 1. 创建UI元素 创建…

2024 中央企业数据资产化及数据资产入表场景建设白皮书

本文介绍了中央企业数据资产化的重要性及其入表场景建设。白皮书详细阐述了数据资产化的概念、实施步骤和关键挑战&#xff0c;提出了一系列解决方案。文章还强调了数据资产入表的重要性&#xff0c;以提高数据的透明度和质量&#xff0c;推动企业数字化转型。 重点内容&#…

电力场景输电线本体分割数据集labelme格式1629张1类别

数据集格式&#xff1a;labelme格式(不包含mask文件&#xff0c;仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数)&#xff1a;1629 标注数量(json文件个数)&#xff1a;1629 标注类别数&#xff1a;1 标注类别名称:["csv_ct"] 每个类别标注的框数&…