理解ldap配置 - OpenLDAP访问控制(ACL)

Overview 访问控制 (Access Control) 是对目录树中的IDT访问的权限控制。主要指 “谁” 应该能够 “访问记录” 在 “什么条件下” 他们应该能看到多少这样的记录,这些将是本节中阐述的问题 。 OpenLDAP控制目录数据访问的主要方法是 通过访问控制列表 (Access Control List)。使 slapd 服务端在处理来自客户端的请求时,会评估客户端是否具有访问所请求的 DIT 的权限。要执行此计算,slapd 将依次计算LDIF 中配置的每个ACL策略,以检查客户端是否有权限访问该 DIT。 Note: ACL策略由上而下依次进行匹配 默认的访问控制策略是对所有客户端都允许读取,不管定义了什么ACL策略,rootdn (databases部分设置的)总是允许对所有和任何东西拥有完全的权限(即身份验证、搜索、比较、读和写 ) ACL介绍 访问控制主要定义三大方面: what 定义对那些地方的访问,部分选择应用访问的条目和/或属性 who 定义人员,部分指定授予哪些实体访问 access 定义权限,部分指定授予的访问。 text 1 2 3 access to [what] by [who] [control] by [who] [control] text 1 2 3 access to [resources] by [who] [type of access granted] [control] by [who] [type of access granted] [control] 对于完整的ACL语法,如下面所示 [1]...

 ·  · 

理解ldap配置 - OpenLDAP中的4种复制机制

LDAP复制概述 openldap的复制 ( replication) 是可以将 LDAP DIT (Directory Information Tree) 同步更新复制到一个或多个LDAP (“ slapd ”) 系统,主要是用于实现备份或提升性能场景。在 openldap中,需要注意的一点是 “复制” 级别属于DIT级别而非LDAP服务级别运行。因此,在运行的一个服务 (slapd) 中的多个DIT,每一个DIT都可以被复制到不同的其他服务中 (slapd) 。本章节只讲述 openldap 2.4+ 的四种复制模式。 注意:在 openldap 2.4- 提供的复制功能,属于一个额外的守护进程 slurpd。仅适用于(2.3之前版本)。 openldap的复制模式 在openldap 2.4+ 中,提供了四种复制模式: Delta-syncrepl :2.3+ N-Way Multi-Provider:2.4+ MirrorMode:2.4+ Syncrepl Proxy Mode slurpd:2.3-,这种模式将不再本章节中阐述 下面将由简到易来阐述四种复制模式 Delta-syncrepl Delta-syncrepl 模式是基于日志模式 syncrepl 的一种变种模式,主要是为了解决openldap同步机制中的一些缺点。由于传统的同步机制是基于对象的同步机制,即当对象上的任何一个属性发生改变,每一个 comsumer 都会触发获取一次完整的对象(例如对象存在100个属性),这种模式存在以下特点: 优点:对象发生改变时无需注意改变次数,仅需要结果即可,类似于kubernetes list-watch 机制 缺点:开支过大,例如存在102,400个对象,每个对象大小1KB,当跑脚本批量更改所有对象的其中一个属性时(2Byte),每个comsumer将要触发的同步数据将为100MB数据,来更改200KB数据,外加TCP/IP协议的开销 Delta-syncrepl 的诞生就是为了解决 syncrepl 机制的缺点 Note: syncrepl 就是传统的 povider-comsumer/master-slave 模型 Delta-syncrepl 需要注意的一点就是,当两边数据完全不同(或为空)将使用 syncrepl 同步完成后切换为 Delta-syncrepl 模式 对于 Delta-syncrepl 与 syncrepl 模式来说可以产生多种变种模型,push 与 pull...

 ·  · 

理解ldap配置 - OpenLDAP使用SSL/TLS通信安全

OpenLDAP TLS/SSL 配置 对于 TLS/SSL 方向的内容不过多阐述了,这里只阐述openldap TLS/SSL 配置方向的内容 openldap提供了两种方式进行 TLS/SSL 认证 自动模式:客户端通过 ldaps://hostname/ 形式的URL访问slapd,slapd默认为636端口提供 TLS 会话 主动定义:slapd标准端口389支持 TLS/SSL ,客户端通过显式配置 TLS/SSL 也可以使用 URL格式ldap://hostname/ 进行访问,需要注意的是,在同步时如果使用 ldap:// 格式URL需要指定参数 starttls=yes 或者 starttls=critical 使用 ldaps:// 则不需要指定该参数 生成自签名证书 创建CA证书 bash 1 2 3 4 5 6 7 8 9 10 openssl genrsa -out cakey.key 2048 openssl req -new -x509 \ -key cakey.key \ -out cacert.crt \ -days 3650 \ -subj "/C=HK/ST=HK/O=TVB/OU=bigbigchannl/CN=tvb-ca" touch index.txt echo "01" > serial 生成证书请求...

 ·  · 

理解ldap配置 - OpenLDAP架构与Schema设计

什么是schema schema又称为数据模型,是openldap中用于来指定一个条目所包含的对象类(objectClass)以及每个对象类所包含的属性值(attribute),其中属性值又包含必要属性和可选属性。 Notes:拥有schema的数据代表该数据是结构化数据,无论他是什么格式,甚至于是一个连续的字符串 如何理解schema 不管是在学习OpenLDAP时还是学习数据库时,都会遇到一个很迷糊的Schema的概念。 在数据库中,对数据库的设计可以称之为schema。即schema约束了数据库的设计结构,并提供了整个数据库的描述。schema仅展示数据库的设计,如表字段的类型,表与表之间的关联。 在ldap中schema与database中的schema一样,如列出的schema中,这些代表了对应的ldap结构的设计。 what-is-a-schema schema overview text 1 2 3 4 5 6 7 8 9 10 11 12 olcObjectClasses: ( 0.9.2342.19200300.100.4.19 NAME 'simpleSecurityObject' DESC 'RFC1274: simple security object' SUP top AUXILIARY MUST userPassword ) # 必须包含的属性 # # RFC 1274 + RFC 2247 olcAttributeTypes: ( 0.9.2342.19200300.100.1.25 NAME ( 'dc' 'domainComponent' ) # 表示属性名称 DESC 'RFC1274/2247: domain component' EQUALITY caseIgnoreIA5Match # 相等性匹配 SUBSTR caseIgnoreIA5SubstringsMatch # 字符串匹配 SYNTAX 1....

 ·  · 

理解ldap - OpenLDAP客户端命令行使用

ldapsearch 查询api ldapsearch ldapsearch命令参数说明 语法 text 1 ldapsearch [options] filter [attributes] 参数 说 明 -W 指定密码,交互式,不需要在命令上写密码 -w 指定密码,需要命令上指定密码 -H ldapapi -D 所绑定的服务器的DN,如cn=admin,dc=etiantian,dc=org -f -f: filename.ldif文件 -b -b 指定作为查询节点而不是默认的 -LLL 以LDIF格式打印响应,不带注释 -x 简单的认证 简单的搜索 最简单的在查询ldap条目的最简单方法是使用带有 “-x” 选项进行简单身份验证,并使用 “-b” 指定搜索域。 bash 1 $ ldapsearch -x -b <search_base> -H <ldap_host> 例如向 10.0.0.3 上openldap服务查询,该命令需要服务器接受匿名身份验证,这将可以查询而无需绑定管理员帐户 bash 1 $ ldapsearch -x -b "dc=test,dc=com" -H ldap://10.0.0.3 使用管理员账户进行搜索 使用管理员帐户进行搜索,必须使用backend配置的 RootDN 并在命令行使用 “-D” 选项 和 “-W” ,如果要使用非交互式认证,使用选项 “-w” bash 1 $ ldapsearch -x -b <search_base> -H <ldap_host> -D <bind_dn> -W 例如,上章在安装时配置了RootDN:“ cn=admin,dc=test,dc=com ”。如果要使用此帐户执行搜索,可以使用命令...

 ·  ·