Ldap

OpenLDAP 元後端 OLC 配置

  • September 23, 2020

我無法通過 OLC 配置 OpenLDAP 元後端。不幸的是,openldap.org/docs 還沒有 back-meta 配置

11.5.2. back-meta Configuration
LATER

man slapd-meta

生成 slapd.conf 配置樣式的資訊。此外,使用 slapd.conf 有很多關於 meta 的操作方法,但我發現沒有使用 OLC。

  1. 我會欣賞一個用於元後端配置的 .ldif 範例
  2. 是否可以使用 slapd.conf 到 OLC 轉換部分配置 OpenLDAP?例如,僅使用 slapd.conf 配置元,而其他一切都使用 OLC?

這是用於元後端配置的範例 .ldif 文件:

dn: olcDatabase={3}meta,cn=config
objectClass: olcDatabaseConfig
objectClass: olcMetaConfig
olcDatabase: {3}meta
olcSuffix: dc=example,dc=com
olcDbOnErr: continue
olcDbCancel: abandon
olcDbTFSupport: no
structuralObjectClass: olcMetaConfig

dn: olcMetaSub={0}uri,olcDatabase={3}meta,cn=config
objectClass: olcMetaTargetConfig
olcMetaSub: {0}uri
olcDbURI: "ldap://localhost/ou=backend1,dc=example,dc=com"
olcDbRewrite: {0}suffixmassage "ou=backend1,dc=example,dc=com" "ou=backend1"
olcDbKeepalive: 0:0:0
olcDbBindTimeout: 100000
olcDbCancel: abandon
structuralObjectClass: olcMetaTargetConfig

在這裡回答您的第二個問題是我在上面創建的方式。我關注了這篇出色的部落格文章:https ://blog.oddbit.com/post/2010-02-16-merging-directories-with-openldap-meta/

這是我的步驟:

  1. 編譯安裝openldap下/u01/app/openldap
  2. 創建了 slapd-be1.conf、slapd-be2.conf 和 slapd-fe.conf
  3. 包含上述三個文件/u01/app/openldap/etc/openldap/slapd.conf(我還在“MDB 數據庫定義”下方註釋掉了預設數據庫創建指令
  4. 使用此 conf 文件創建了 openldap 數據庫:
$ u01/app/openldap/libexec/slapd  -f /u01/app/openldap/etc/openldap/slapd.conf -h ldap:/// -F /u01/app/openldap/etc/slapd.d/

上面使用 slapd.conf 並創建數據庫,它還在 下創建結構/u01/app/openldap/etc/slapd.d,可用於 OLC 前進。

5.停止slapd

6.啟動slapd,這次不要使用slapd.conf

$ u01/app/openldap/libexec/slapd -h ldap:/// -F /u01/app/openldap/etc/slapd.d/
  1. 根據博文添加數據
$ ldapadd -x -D cn=ldif-admin,ou=backend1 -W -f backend1.ldif 
$ ldapadd -x -D cn=ldif-admin,ou=backend2 -W -f backend2.ldif 
  1. 使用後端端點搜尋此添加的數據
$ dapsearch -x -b ou=backend1 
  1. 使用元端點搜尋此數據
$ ldapsearch -x -b dc=example,dc=com
  1. 轉儲 LDAP 配置
$ slapcat -n 0 -l config.ldif -F /u01/app/openldap/etc/slapd.d

上述命令將生成 config.ldif,其中包含整個 LDAP 的配置。您將在文件末尾看到元配置。今後,您可以使用此語法創建元 LDIF 並使用 OLC 導入。

希望以上有所幫助。

引用自:https://serverfault.com/questions/866542