一:基础概念
1 schema 相当于类和属性定义
所有的 objectClass 和 attribute 都定义在 Schema 里。不同的schema定义的属性可以相互使用。
openldap定义的schema文件路径:/etc/openldap/schema/
安装openldap后,我们需要导入一些基本的 Schema
# 我们需要向 LDAP 中导入一些基本的 Schema。这些 Schema 文件位于 /etc/openldap/schema/ 目录中,schema控制着条目拥有哪些对象类和属性,可以自行选择需要的进行导入,
# 依次执行下面的命令,导入基础的一些配置,我这里将所有的都导入一下,其中core.ldif是默认已经加载了的,不用导入
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/collective.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/corba.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/duaconf.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/dyngroup.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/java.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/misc.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/openldap.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/pmi.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/ppolicy.ldif
有些系统级别的 objectClass和attribute不需要我们自己定义,openLdap默认定义好了。可以直接使用。
2 对象类(objectClass)
• objectClass 相当于面向对象的类概念 attribute 相当于类的属性。
• objectClass 可以是下面的类型:
– STRUCTURAL - 可以用于创建条目,即数据对象
– AUXILIARY - 可以添加到任何条目
-- ABSTRACT 用于子类继承
3 条目 dn
dn确定一条LDAP数据。 相当于关系数据库的一条记录。
一个dn定义依赖于 至少一个objectClass. 且必须要有一个 STRUCTURAL 类型的object
二 openLdap系统配置
2.1 LDAP的系统级配置文件都在cn=config 条目下。 路径: /etc/openldap/slapd.d/cn=conifg,如下截图所示
从图中我们可以看到cn=config 条目下还有 几个子条目,
cn=schema定义所有加载的schema,子目录可以看到步骤一添加的schema:
olcDatabase={2}hdb,cn=config,该条目定义了数据库相关配置信息。
修改管理员密码以及域名,修改这个条目。 我们也可以添加新的数据库 olcDatabase={3}hdb
changetype: modify
replace: olcSuffix
olcSuffix: dc=tcl,dc=com
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=tcl,dc=com
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}KQ9w3CdlaPq6QQJcnPdpKVqkWFgz/Nhh
参考:https://www.zytrax.com/books/ldap/ch6/slapd-config.html#use-modules