OpenLDAP Proxy -- slapd.conf

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

OpenLDAP代理的介绍性文章中,我们提到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代理。我们将解释这里配置了meta后端的那个。ldap后端配置与meta后端类似,只是有一些细微的差别。

下面是OpenLDAP代理的工作示例配置。

#
# 有关配置选项的详细信息,请参阅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文件,其中包含模式声明和其他常规设置。我们将只关注特定于代理的设置。

moduleload  back_meta

这加载meta后端模块,以便可以使用meta后端

database meta

这声明LDAP服务器的后端,在本例中为meta。也可以设置为ldap。

suffix   "dc=test,dc=com"

这声明LDAP客户端可以用来搜索LDAP代理的虚拟命名上下文(基)。它可以是任何符合基语法有意义的值

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

这两个条目声明LDAP客户端可以用来向LDAP代理进行身份验证的虚拟绑定dn和密码。当远程LDAP服务器需要客户端绑定时,这些很有用,因为我们需要告诉代理谁可以向远程LDAP服务器进行身份验证。

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

这启动一个新的远程LDAP服务器条目。语法应为"://[:]/<vritual-naming-context/suffix>"。uri末尾的虚拟命名上下文通常与database meta之后声明的后缀相同。

每个新的远程LDAP服务器都应该使用单独的uri。

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

这声明了代理中定义的后缀/基与远程LDAP服务器中真实基之间的映射,以便在客户端查询到来时,它可以将查询重定向到远程LDAP服务器的真实搜索基。左部分是虚拟命名上下文,它通常与database meta之后声明的后缀相同。右部分是远程LDAP服务器中的真实搜索基。

ldap后端不支持此功能。

readonly      yes

这声明LDAP客户端只能查询远程LDAP服务器,而不能更新远程LDAP服务器。当使用LDAP服务器作为代理时,这通常是我们会做的事情。

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可以访问它。这是在代理中定义的rootdn。

overlay           rwm
rwm-map       attribute   uid  sAMAccountName

这定义了代理服务器向客户端公开的属性名称与远程LDAP服务器提供的真实属性名称之间的映射。当不同的远程LDAP服务器可能具有不同的属性名称但含义相同的时候,这很有用。例如,在Linux LDAP服务器中,uid表示用户ID,而在Windows AD中,相同的内容可能由sAMAccountName表示。或者当需要自定义属性时,它们也很有用。

在下一篇文章中,我们将介绍如何使用slapd.conf设置LDAP代理。

OPENLDAP  OPENLDAP PROXY  SLAPD  SLAPD.CONF 

       

  RELATED


  0 COMMENT


No comment for this article.



  RANDOM FUN

No title