我需要设置一个连接到我们的中央 Active Directory 服务器的本地 LDAP 代理缓存。OpenLDAP 代理缓存看起来就像这样。但是,尽管尽可能严格地按照手册页操作,我还是无法让它工作。
我能够通过本地主机将请求代理到远程服务器,但它们不会被缓存(或者至少不会被检索到缓存)。
我采取的步骤:
- 安装
openldap-servers
和openldap-clients
软件包 - 创建了一个
slapd.conf
配置文件(详细信息如下) - 为代理数据库创建一个目录并将默认的 DB_CONFIG 文件复制到那里(详情如下)
- 运行
slapd -d -1
命令启动服务器 - 使用此命令查询服务器:
ldapwhoami -vvv -h localhost -D "CN=Melka Martin,OU=(...),DC=int,DC=ourdomain,DC=com" -x -w <password>
结果是成功了。但是嗅探网络流量显示查询是从中央 LDAP 服务器汇集的。
输出slapd
非常详细,但它确实在某一点上表明
QUERY NOT ANSWERABLE
QUERY CACHEABLE
唉,即使缓存了,也永远不会得到答复。有什么想法可能出了什么问题吗?
"cn=admin,dc=int,dc=ourdomain,dc=com"
是远程 LDAP 服务器中管理员用户的 DN。<something>
是他的密码。
slapd配置文件
database ldap
suffix "dc=int,dc=ourdomain,dc=com"
rootdn "cn=admin,dc=int,dc=ourdomain,dc=com"
rootpw <something>
uri ldap://dc-04.int.ourdomain.com:389
overlay pcache
pcache hdb 100000 1 1000 100
pcacheAttrset 0 *
pcacheTemplate (sn=) 0 3600
pcacheBind (sn=) 0 3600 sub dc=int,dc=ourdomain,dc=com
cachesize 200
directory /var/lib/ldap
index objectClass eq
index cn eq,sub
数据库配置
# $OpenLDAP$
# one 0.25 GB cache
set_cachesize 0 268435456 1
# Transaction Log settings
set_lg_regionmax 262144
set_lg_bsize 2097152
详细日志输出:http://pastebin.com/9s8HMg7d
答案1
您是否希望缓存以下查询?
ldapwhoami -vvv -h localhost -D "CN=Melka Martin,OU=(...),DC=int,DC=ourdomain,DC=com" -x -w <password>
首先,我将更改模板以匹配身份验证参数:
pcacheTemplate (dn=) 0 3600
pcacheBind (dn=) 0 3600 sub dc=int,dc=ourdomain,dc=com
(dn 为专有名称,sn 为姓氏)
但如果它真的有效,我会很惊讶。事实上,我不确定这个工具是否适合测试这个覆盖。例如,ldapwhoami
手册页谈到了。你应该事先配置它并观察它执行了哪些查询,这样你就可以模仿模板、范围和基础。authentication clients
nss_ldap
答案2
提到一些可能有帮助或有助于缩小根本原因范围的事情。。。
第一的
我想指出的是,我注意到你正在运行,slapd -d -1
这只是意味着slapd
使用调试和日志记录级别1
运行verbose
/ enable all debugging
。
从我在下面的帖子 URL 资源中读到的内容来看,如果你没有按照语法运行slapd -f <filename>
并完全限定<filename>
指向“选择” slapd.config
文件,然后...“默认值通常为 /usr/local/etc/openldap/slapd.conf。“
因此,这可能无法真正运行slapd
并将其指向配置文件以获取您在备用配置文件中放置的指针/参数,因此如果出现此问题,请先尝试一下。
可能与此错误具体相关(ERROR PART1
): 564da523 config_back_db_open: No explicit ACL for back-config configured. Using hardcoded default
(资源:http://www.openldap.org/doc/admin24/runningslapd.html)
笔记: 我在您提供的详细日志中看到一些与 DB 相关的错误消息,所以也许它无法找到适用的 DB,除非您更改到该目录,否则它可以隐式找到,除非它支持其他显式 DB 指针方法(NOTE2 可能适用于此方法)。
笔记2: 这是关于 LDAP 代理方法的很好的读物,并以这种方式在配置中使用等,只是为了检查文件uri
中可能缺少或配置错误的一些明显内容slapd.conf
(http://www.openldap.org/faq/data/cache/532.html)。
Note2 部分资源中的一些有趣点
LDAP Proxy
binddn
bindpw
identity assertion
identity assertion configuration
版本
首先,看来您在 OpenLADAP 上已经落后了两个版本,因此可能值得阅读此处的发行说明,看看是否有任何内容适用于您的问题(http://www.openldap.org/software/release/changes.html)如果可能的话,这可以证明升级或从测试升级系统运行是合理的。
错误
其次,详细的日志细节提供了更多的错误消息等,我想按以下顺序特别指出ERROR PART 1
、、ERROR PART 2
和。ERROR PART 3
ERROR PART 4
LDAP 错误的常见原因
(资源:http://www.openldap.org/doc/admin24/appendix-common-errors.html)
据我所知,如果您感觉所有配置确实都设置正确,那么ERROR PART 1
第一行可能确实只是一个“警告”,可以安全地忽略。
但是()下面的线~Using hardcoded default
可能是第一的上面的部分,我列出了 URL 等等。
错误 1
564da523 config_back_db_open: line 0: warning: cannot assess the validity of the ACL scope within backend naming context
564da523 config_back_db_open: No explicit ACL for back-config configured. Using hardcoded default
资源:
- (http://www.openldap.org/software/man.cgi?query=slapd%288%29&apropos=0&sektion=8&manpath=OpenLDAP+2.X-Devel&format=html)
- (http://www.openldap.org/doc/admin24/runningslapd.html)
错误 2
564da523 <= hdb_dn2id: get failed: DB_NOTFOUND: No matching key/data pair found (-30988)
564da523 <= hdb_dn2id: get failed: DB_NOTFOUND: No matching key/data pair found (-30988)
在这个(上面)中,我找到了一个带有文件的示例,还有一个(下面)说明了这一点,所以我想知道它是否像您需要在您的情况下slapd.conf
更改文件中的 DB 目录一样简单。slapd.conf
(资源:http://www.zytrax.com/books/ldap/ch5)
资源 URL 示例
# root or superuser
rootdn "cn=jimbob, dc=example, dc=com"
rootpw dirtysecret
# The database directory MUST exist prior to running slapd AND
# change path as necessary
directory /var/db/openldap/example-com
错误第 3 部分
telnet <host> <port>
使用LDAP IP 地址进行故障排除
也可能有用(http://www.openldap.org/faq/data/cache/532.html)
ldap_read: want=8 error=Resource temporarily unavailable
错误第 4 部分
64da525 <= hdb_dn2id: get failed: DB_NOTFOUND: No matching key/data pair found (-30988)
564da525 => bdb_entry_get: cannot find entry: "cn=melka martin,ou=release engineering,ou=development,ou=research and development,ou=cz,dc=int,dc=company,dc=com"
564da525 QUERY NOT ANSWERABLE
564da525 QUERY CACHEABLE