openldap概念
2019-04-11OpenLDAP Software is an open source implementation of the Lightweight Directory Access Protocol.
The suite includes:
slapd- stand-alone LDAP daemon (server) librariesimplementing the LDAP protocol, and utilities, tools, and sample clients.
http://www.openldap.org/doc
1、 Schema是openldap软件的重要组成部分,主要用于控制目录树中各种条目所拥有的objectclass已及各种属性的定义,通过自身内部规范机制限定目录树条目所遵循的逻辑结构已及定义规范,保证整个目录树没有非法条目数据,避免不合法条目存在目录树中,保障目录树完整/唯一。
在目录树中,schema用来指定一个条目所包含的对象类objectClass以及每个objectclass包含的属性attribute value
schema是一个数据模型,类似mysql中存储引擎MyISAM/InnoDB。决定数据按照什么方式存储。
schema是一个标准,默认存放位置/etc/openldap/schema,通过include引用
rpm -ql sudo安装软件时会包含相应 schema
cp /usr/share/doc/sudo/schema.sudo /etc/openldap/schema
include /etc/openldap/schema/schema.sudo
通过schema产生sudo.ldif文件
导入目录树ldapadd -Y -H -f sudo.ldaf
2、ObjectClass 三种类型 结构structural/辅助auxiliary/抽象型abstract
在openldap目录树中,每个条目必须包含一个属于自身条件的对象类。然后再定义其条目属性及对应的值。
3、LDIF文件 LDAP Data Interchanged Format
LDIF文件每行结尾不允许有空格或TAB符
LDIF运行属性重复赋值并使用
LDIF文件
LDIF开头#为注释
赋值方式: 属性:【空格】属性值
空行和空格分开条目
3、openldap默认以Berkeley DB作为后端数据库。主要以散列的数据类型存储,如以键值对的方式存储。
主要用于搜索/浏览/更新查询,一遍对于一次写入,多次查询或搜索效果最好。
Berkeley DB面向查询/读取优化的数据库,Berkeley DB不支持事务性数据库(mysql/oracle)等所支持的高并发的吞吐量复杂的事务操作。
4、命名规范
a)、互联网命名组织架构
uid=www,ou=it,dc=wall,dc=com
b)、企业级组织命名架构
5、openldap使用了C/S架构,所以需要配置客户端
6、cyrus-sasl Simple Authentication and Security Layer
openldap配置sasl认证
SASL是一个更加通用的身份认证接口,其接口在设计上可以兼容很多主流的认证方案。很多项目在做身份认证的时候,也是采用的SASL接口和流程。
它的核心思想是把用户认证和安全传输从应用程序中隔离出来
7、GSSAPI Generic Security Services Application Program Interface
GSSAPI的其流程基本和kerberos类似。在现实应用中,你基本可以假设GSSAPI就是kerberos本身。在我们最常使用的kerberos实现MIT kerberos中,GSSAPI的接口也已经是一个内置项了。
8、kerberos主要是用来做网络通信时候的身份认证,最主要的特点就是“复杂”。
OpenLDAP clients and servers support Kerberos authentication services. In particular, OpenLDAP supports the Kerberos V GSS-API SASL authentication mechanism known as the GSSAPI mechanism. This feature requires, in addition to Cyrus SASL libraries, either Heimdal or MIT Kerberos V libraries.
在真正使用kerberos进行身份认证时,我们一般不直接使用kerberos的接口。而是会使用诸如GSSAPI或者SASL等更通用的一些标准接口。
之所以这么做,是因为:
kerberos的接口更琐碎
SASL和GSSAPI都是IETF标准,他们对身份认证这一行为做了更宏观的抽象。从而可以灵活的接入不同的认证方案。
kerberos基于 共享密钥 的安全机制,由MIT发明,现在已经被标准化,最新是版本5,简称krb5。Kerberos特别适合局域网络,Windows2k及以上系统的安全机制即基于kerberos