OpenLDAP Proxy -- slapd.conf

  sonic0002        2017-10-29 04:01:39       21,628        0          English  简体中文  繁体中文  ภาษาไทย  Tiếng Việt 

OpenLDAP Proxy入門文章中,我們提到slapd.conf是設定檔,它告訴slapd服務該做什麼。除此之外,還有一種動態配置slapd的方法,其配置儲存在LDIF資料庫中。未來,LDIF資料庫將成為配置slapd的唯一方式,舊式的slapd.conf已不建議使用。可以使用slapdtest命令將slapd.conf轉換為LDIF格式。

slapdtest -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d

為方便說明,我們將使用slapd.conf來解釋如何將slapd服務配置為OpenLDAP Proxy。我們將在此解釋已配置meta後端的配置。ldap後端配置與meta後端配置類似,只有一些細微的差別。

以下是一個可運作的OpenLDAP Proxy配置範例。

#
# 詳細配置選項,請參閱slapd.conf(5)。
# 此檔案不應允許世界可讀。
#

# 包含綱要
include         /etc/openldap/schema/corba.schema
include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/duaconf.schema
include         /etc/openldap/schema/dyngroup.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/java.schema
include         /etc/openldap/schema/misc.schema
include         /etc/openldap/schema/nis.schema
include         /etc/openldap/schema/openldap.schema
include         /etc/openldap/schema/ppolicy.schema
include         /etc/openldap/schema/collective.schema


# 允許LDAPv2客戶端連線。這不是預設值。
allow bind_v2

pidfile         /var/run/openldap/slapd.pid
argsfile        /var/run/openldap/slapd.args

# 載入動態後端模組
# - modulepath是依賴架構的值(32/64位元系統)
# - back_sql.la覆蓋層需要openldap-server-sql套件
# - dyngroup.la和dynlist.la不能同時使用

modulepath  /usr/lib/openldap
modulepath  /usr/lib64/openldap
moduleload  back_meta
moduleload  rwm

# 接下來三行允許使用TLS來加密使用虛擬測試憑證的連線,您可以通過執行來生成。
TLSCACertificateFile /root/openldap_proxy/data/certs/ldap.crt
TLSCertificateFile /root/openldap_proxy/data/certs/ldap.crt
TLSCertificateKeyFile /root/openldap_proxy/data/certs/ldap.key

# 記錄層級
loglevel 256

#######################################################################
# 資料庫定義
#######################################################################

#### 資料庫定義 #########################################

database meta
suffix   "dc=test,dc=com"
rootdn   "cn=admin,dc=test,dc=com"
rootpw   "password"

uri           "ldap://192.168.56.100/dc=test,dc=com"
readonly      yes
lastmod       off
suffixmassage "dc=test,dc=com" "dc=ou1,dc=test,dc=com"

uri "ldap://192.168.56.101/dc=test,dc=com"
readonly      yes
lastmod       off
suffixmassage "dc=test,dc=com" "dc=ou2,dc=test,dc=com"
idassert-bind bindmethod=simple
   binddn="cn=admin,dc=test,dc=com"
   credentials="password"
   mode=none
   flags=non-prescriptive
idassert-authzFrom "dn.exact:cn=admin,dc=test,dc=com"

overlay       rwm
rwm-map       attribute   uid  sAMAccountName

這是一個標準的slapd.conf檔案,其中包含綱要的宣告和其他一般設定。我們只關注與Proxy相關的設定。

moduleload  back_meta

這載入meta後端模組,以便可以使用meta後端。

database meta

這宣告LDAP伺服器的後端,在本例中為meta。也可以設定為ldap。

suffix   "dc=test,dc=com"

這宣告LDAP客戶端可以用來搜尋LDAP Proxy的虛擬命名內容(基底)。它可以是任何符合基底語法的有意義的值。

rootdn   "cn=admin,dc=test,dc=com"
rootpw   "password"

這兩個項目宣告LDAP客戶端可以用來驗證LDAP Proxy的虛擬bind dn和密碼。當遠端LDAP伺服器需要客戶端bind時,這些很有用,因為我們需要告訴Proxy誰可以驗證到遠端LDAP伺服器。

uri           "ldap://192.168.56.100/dc=test,dc=com"

這開始一個新的遠端LDAP伺服器項目。語法應為"://[:]/<vritual-naming-context/suffix>"。uri結尾的virtual-naming-context通常與database meta之後宣告的suffix相同。

每個新的遠端LDAP伺服器都應該使用單獨的uri。

suffixmassage "dc=test,dc=com" "dc=ou1,dc=test,dc=com"

這宣告Proxy中定義的suffix/base與遠端LDAP伺服器中真實base之間的映射,以便在客戶端查詢進來時,它可以將查詢重新導向到遠端LDAP伺服器真實的搜尋基底。左邊部分是virtual-naming-context,通常與database meta之後宣告的suffix相同。右邊部分是遠端LDAP伺服器中真實的搜尋基底。

這在ldap後端中不可用。

readonly      yes

這宣告LDAP客戶端只能查詢遠端LDAP伺服器,但不能更新遠端LDAP伺服器。當使用LDAP伺服器作為Proxy時,這通常是我們會做的事情。

lastmod       off

這也表示不能修改遠端伺服器。預設值為off,這將不允许修改。

idassert-bind bindmethod=simple
   binddn="cn=admin,dc=test,dc=com"
   credentials="password"
   mode=none
   flags=non-prescriptive
idassert-authzFrom "dn.exact:cn=admin,dc=test,dc=com"

當遠端LDAP伺服器需要客戶端驗證才能查詢伺服器時,這些是必要的。支援幾種bindmethod。一種是simple,它需要正常的dn和密碼進行驗證。binddn和憑證應由真實的LDAP伺服器提供。

此外,authzFrom宣告哪些本地識別可以訪問身份斷言功能。在本例中,我們定義了cn=admin,dc=test,dc=com可以訪問它。這是Proxy中定義的rootdn。

overlay           rwm
rwm-map       attribute   uid  sAMAccountName

這定義了Proxy伺服器向客戶端公開的屬性名稱與遠端LDAP伺服器提供的真實屬性名稱之間的映射。當不同的遠端LDAP伺服器可能有不同的屬性名稱但意思相同時,這很有用。例如,在Linux LDAP伺服器中,uid表示使用者ID,而在Windows AD中,相同的事物可能由sAMAccountName表示。或者當需要自定義屬性時,它們也很有用。

在下一篇文章中,我們將介紹如何使用slapd.conf設定LDAP Proxy。

OPENLDAP  OPENLDAP PROXY  SLAPD  SLAPD.CONF 

           

  RELATED


  0 COMMENT


No comment for this article.



  RANDOM FUN

Cool innovation


  SUPPORT US