openldap访问控制
系统:debian12
/etc/ldap/slapd.d/cn=config目录下
包含以下三个数据库:
dn: olcDatabase={-1}frontend,cn=config
dn: olcDatabase={0}config,cn=config
dn: olcDatabase={1}mdb,cn=configolcDatabase: [{\<index\>}]\<type\>数据库条目必须具有olcDatabaseConfig对象类。frontend用于保存应用于所有其他数据库的数据库级别选项。后续的数据库定义也可能覆盖某些frontend设置。config和 frontend数据库总是隐式创建的,它们是在任何其他数据库之前创建的。
olcDatabase={0}config.ldif中包含如下信息说明为SASL机制授权(集成身份认证)
cat olcDatabase\=\{0\}config.ldif其中包含如下信息:
olcAccess: {0}to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth manage by * break
olcDatabase={1}mdb.ldif中包含如下信息说明为简单授权(账号密码登录)
cat olcDatabase\=\{1\}mdb.ldif其中包含如下信息:
olcRootDN: cn=admin,dc=srv,dc=world
olcRootPW:: e1NTSEF9N3RwUTR4WkdhK3pBRlNla
访问控制
默认的访问控制策略是允许所有客户端读取。无论定义了什么访问控制策略,rootdn总是被允许对所有内容拥有完全权限(即身份验证、搜索、比较、读取和写入)。因此,在子句中显式列出rootdn是无用的。
配置访问控制通过olcAccess实现
olcAccess: {0}to attrs=userPassword by self write by anonymous auth by * none
olcAccess: {1}to attrs=shadowLastChange by self write by * read
olcAccess: {2}to * by * readolcAccess: to <what> [by <who> [<access>] [<control>] ]+
<what>选择访问所应用的条目和/或属性,<who>指定授予哪些实体访问权限,<access>指定授权的访问权限
what的指定方式:
<what> ::= * |[dn[.<basic-style>]=<regex> | dn.<scope-style>=<DN>][filter=<ldapfilter>] [attrs=<attrlist>]
可以通过DN和过滤器选择条目
-
按DN选择条目:
to * : 全部条目
to dn[.<basic-style>]=<regex> : 正则表达式匹配的条目
to dn.<scope-style>=<DN> : dn请求范围内的条目- 其中,<scope-style>可以是base, one, subtree, or children。
- 其中,base只匹配具有所提供DN的条目。(精准匹配,只匹配dn)
- one匹配其父项是所提供的DN的条目。(dn的下一级)
- subtree匹配子树中根为所提供的DN的所有条目。(根为dn的所有条目,包括dn)
- cildren匹配DN下的所有条目(但不匹配由DN命名的条目)。(根为dn的所有条目,不包括dn)
- 其中,<scope-style>可以是base, one, subtree, or children。
-
通过过滤器选择条目:
to filter=<ldap filter>
如to filter=(objectClass=person) -
DN和过滤器可以同时用来选择条目:
如 to dn.one=“ou=people,o=suffix” filter=(objectClass=person) -
属性选择
可以通过以逗号分隔的属性名称列表来选择条目中的属性:
attrs=<attribute list>
通过使用单个属性名称和值选择器来选择属性的特定值:
attrs=<attribute> val[.<style>]=<regex>
who的指定方式:
* : 所有对象,包括匿名和授权用户
anonymous : 匿名未授权用户
users : 授权用户
self : 与目标条目关联的用户
dn[.<basic-style>]=<regex> : 符合正则匹配的用户
dn.<scope-style>=<DN> : DN所指定范围内的用户
access的指定方式
级别 权限 描述
none =0 没有权限
disclose =d 需要错误信息披露
auth =dx 需要进行授权(bind)的操作
compare =cdx 进行比较
seach =scdx 进行搜索过滤
read =rscdx 进行读取搜索结果
write =wrcdx 进行修改或重命名
manage =mwrscdx 进行管理
每个级别都意味着所有较低级别的访问。
修改访问控制权限
创建文件add_access.ldif,内容如下:
# 新建一个olcAccess,索引为3
dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {3}to attrs=userPassword by self write by * read
然后执行如下命令修改olcDatabase={1}mdb.ldif文件
ldapmodify -Y EXTERNAL -H ldapi:/// -f add_access.ldif
在两个不同修改(delete\add)时,中间需要加-
changetype: modify
delete: olcAccess
olcAccess: {1}
-
add: olcAccess
olcAccess: {1}to dn.children="dc=example,dc=com" by * write
参考:
https://www.openldap.org/doc/admin25/access-control.html
https://www.cnblogs.com/bashenandi/p/openldap-access-control.html
相关文章:
openldap访问控制
系统:debian12 /etc/ldap/slapd.d/cnconfig目录下 包含以下三个数据库: dn: olcDatabase{-1}frontend,cnconfig dn: olcDatabase{0}config,cnconfig dn: olcDatabase{1}mdb,cnconfigolcDatabase: [{\<index\>}]\<type\>数据库条目必须具有…...
阿里云服务器技术创新、网络技术和数据中心技术说明
阿里云服务器技术创新、网络技术创新、数据中心技术创新和智能运维:云服务器方升架构、自研硬件、自研存储硬件AliFlash和异构计算加速平台,以及全自研网络系统技术创新和数据中心巴拿马电源、液冷技术等技术创新说明,阿里云百科分享阿里云服…...
华为智能高校出口安全解决方案(2)
本文承接: https://qiuhualin.blog.csdn.net/article/details/131475315?spm1001.2014.3001.5502 重点讲解华为智能高校出口安全解决方案的基础网络安全&业务部署与优化的部署流程。 华为智能高校出口安全解决方案(2) 课程地址基础网络…...
【AI绘画】Stable Diffusion WebUI
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…...
html、css学习记录【uniapp前奏】
Html 声明:该学习笔记源于菜鸟自学网站,特此记录笔记。很多示例源于此官网,若有侵权请联系删除。 文章目录 Html声明: CSS 全称 Cascading Style Sheets,层叠样式表。是一种用来为结构化文档(如 HTML 文档…...
Linux-正则三剑客
目录 一、正则简介 1.正则表达式分两类: 2.正则表达式的意义 二、Linux三剑客简介 1.文本处理工具,均支持正则表达式引擎 2.正则表达式分类 3.基本正则表达式BRE集合 4.扩展正则表达式ere集合 三、grep 1.简介 2.实践 3.贪婪匹配 四、sed …...
Zilliz@阿里云:大模型时代下Milvus Cloud向量数据库处理非结构化数据的最佳实践
大模型时代下的数据存储与分析该如何处理?有没有已经落地的应用实践? 为探讨这些问题,近日,阿里云联合 Zilliz 和 Doris 举办了一场以《大模型时代下的数据存储与分析》为主题的技术沙龙,其中,阿里云对象存储 OSS 上拥有海量的非结构化数据,Milvus(Zilliz)作为全球最有…...
解决 react 项目启动端口冲突
报错信息: Emitted error event on Server instance at:at emitErrorNT (net.js:1358:8)at processTicksAndRejections (internal/process/task_queues.js:82:21) {code: EADDRINUSE,errno: -4091,syscall: listen,address: 0.0.0.0,port: 8070 }解决方法ÿ…...
ChatGPT AIGC 总结Vlookup的20种不同用法
Vlookup是Excel中最常见的函数。接下来我们让ChatGPT,AIGC总结Vlookup函数的用法 。 1. 基本的VLOOKUP用法:=VLOOKUP("John", A2:B5, 2, FALSE)。在A2:B5范围中查找"John",返回与"John"在同一行的第2列的值。例如,查找员工姓名,返回员工ID。…...
Android Logcat 命令行工具
关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。 目录 一、导读二、概览三、日常用法3.1 面板介绍3.2 日志过滤…...
蓝桥等考Python组别八级004
第一部分:选择题 1、Python L8 (15分) 运行下面程序,输出的结果是( )。 i = 1 while i <= 3: print(i, end = ) i += 1 1 20 1 2 31 2 30 1 2正确答案:C 2、Python L8...
selenium-webdriver 阿里云ARMS 自动化巡检
很久没更新了,今天分享一篇关于做项目巡检的内容,这部分,前两天刚在公司做了部门分享,趁着劲还没过,发出来跟大家分享下。 一、本地巡检实现 1. Selenium Webdriver(SW) 简介 Selenium Webdriver(以下简称…...
【数据仓库设计基础(二)】维度数据模型
文章目录 一. 概述二. 维度数据模型建模过程三. 维度规范化四. 维度数据模型的特点五. 维度数据模型1. 星型模式1.1.事实表1.2.维度表1.3.优点1.4.缺点1.5.示例 2. 雪花模式2.1.数据规范化与存储2.2&#x…...
【数据结构】排序算法(一)—>插入排序、希尔排序、选择排序、堆排序
👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》 🌝每一个不曾起舞的日子,都是对生命的辜负 目录 前言 1.直接插入排序 2.希尔排序 3.直接选择排…...
基于JAVA+SpringBoot的新闻发布平台
✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 随着科技的飞速发展和…...
Java实现word excel ppt模板渲染与导出及预览 LibreOffice jodconverter
Java Office 一、文档格式转换 文档格式转换是office操作中经常需要进行一个操作,例如将docx文档转换成pdf格式。 java在这方面有许多的操作方式,大致可以分为内部调用(无需要安装额外软件),外部调用(需…...
【通意千问】大模型GitHub开源工程学习笔记(2)
使用Transformers来使用模型 如希望使用Qwen-chat进行推理,所需要写的只是如下所示的数行代码。请确保你使用的是最新代码,并指定正确的模型名称和路径,如Qwen/Qwen-7B-Chat和Qwen/Qwen-14B-Chat 这里给出了一段代码 from transformers import AutoModelForCausalLM, Aut…...
MQ - 35 四款MQ的架构设计与实现的对比
文章目录 导图概述RabbitMQ顺序消息定时和延时消息事务消息优先级队列死信队列WebSocketRocketMQ顺序消息定时和延时消息事务消息死信队列消息查询根据 Offset 查询消息根据时间戳查询消息据消息 ID 查询消息SchemaKafka顺序消息幂等事务消息消息查询...
spring6-IOC容器
IOC容器 1、IoC容器1.1、控制反转(IoC)1.2、依赖注入1.3、IoC容器在Spring的实现 2、基于XML管理Bean2.1、搭建子模块spring6-ioc-xml2.2、实验一:获取bean①方式一:根据id获取②方式二:根据类型获取③方式三ÿ…...
macOS - 使用 chromedriver
文章目录 下载对应的 chromedriver 下载 Chrome https://www.google.com/chrome/ 查看 版本 下载对应的 chromedriver http://chromedriver.storage.googleapis.com/index.html https://chromedriver.chromium.org/downloads 移动 sudo mv chromedriver /usr/local/bin/ $ c…...
Pixel Fashion Atelier实战教程:从零构建像素时装生成API服务
Pixel Fashion Atelier实战教程:从零构建像素时装生成API服务 1. 项目介绍与核心价值 Pixel Fashion Atelier(像素时装锻造坊)是一款专为时尚设计师和像素艺术爱好者打造的AI图像生成工具。它基于Stable Diffusion和Anything-v5模型&#x…...
EasyAnimateV5-7b-zh-InP在计算机网络教学视频生成中的应用
EasyAnimateV5-7b-zh-InP在计算机网络教学视频生成中的应用 1. 引言 计算机网络课程的教学一直面临着一个难题:如何将抽象的网络协议、拓扑结构和数据传输过程直观地展示给学生。传统的静态图片和文字描述往往难以让学生真正理解数据包是如何在网络中流动的&#…...
质子交换膜燃料电池Comsol完整版仿真模型:涵盖两相流非等温雾状流道、液态水相变及扩散项,考...
质子交换膜燃料电池仿真Comsol完整版 虽然氢电发文量多了,但是氢电模型复杂程度和别的领域没法比,两相流非等温的氢燃料电池,跑通的都得好几千的,这个模型的流道和内侧都是多相流,这个里面是雾状流的流道,目…...
s2-pro部署实操:CSDN平台GPU资源监控与s2-pro服务性能关联分析
s2-pro部署实操:CSDN平台GPU资源监控与s2-pro服务性能关联分析 1. 专业语音合成工具s2-pro简介 s2-pro是Fish Audio开源的专业级语音合成模型镜像,它能够将文本转换为自然流畅的语音,并支持通过参考音频来复用特定音色。这个工具特别适合需…...
别再只会while(1)了!聊聊MCU裸机开发的6种实用架构,从51到STM32都能用
从超级循环到事件驱动:MCU裸机开发的6种架构实战指南 当你第一次点亮LED时,while(1)循环就像魔法一样简单有效。但随着项目复杂度增加——需要同时处理按键消抖、屏幕刷新、数据通信和状态管理时,那个曾经可靠的超级循环突然变成了意大利面条…...
从预处理指令看跨语言兼容:手把手封装C++库供C调用的5个关键步骤
从预处理指令看跨语言兼容:手把手封装C库供C调用的5个关键步骤 在嵌入式开发和SDK设计中,经常需要将C库封装成C语言接口。这种跨语言调用看似简单,实则暗藏玄机。本文将深入剖析extern "C"和__cplusplus预处理指令的底层原理&#…...
抖音视频批量下载神器:3分钟搞定复杂内容管理的终极方案
抖音视频批量下载神器:3分钟搞定复杂内容管理的终极方案 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 抖音作为全球最受欢迎的短视频平台,每天产生海量的精彩内容。然而,…...
cutlass代码架构分析
CUTLASS 代码架构分析 本文档基于 cutlass代码进行梳理,快速理解 CUTLASS 4.x 的模块边界与调用链路。 1. 总体架构 CUTLASS 本质上是一个 header-only 的 CUDA C++ 模板库,外围配套了可选构建目标: include/:核心库(cutlass + cute) tools/:库实例化、性能测试与通用…...
Windows下OpenClaw安装指南:对接ollama GLM-4.7-Flash模型
Windows下OpenClaw安装指南:对接ollama GLM-4.7-Flash模型 1. 为什么选择OpenClaw GLM-4.7-Flash组合 作为一个长期在Windows环境下折腾AI工具的开发者,我一直在寻找一个既能保持本地数据隐私,又能灵活对接各类开源模型的自动化框架。Open…...
从4G到RedCap:手把手教你升级老旧工业设备的无线通信模块(附功耗测试数据)
从4G到RedCap:工业设备无线通信模块升级实战指南 在工业物联网快速发展的今天,老旧设备的通信模块升级成为许多工厂面临的现实挑战。传统4G模块虽然稳定可靠,但面对5G时代RedCap技术带来的低功耗、低成本优势,升级改造已成为提升设…...
