我目前正在将 slapd 设置为代理,并面临重写 LDAP 属性的挑战。我知道 DN 的重写模块 (rwm) 功能,但我需要将类似的功能应用于 LDAP 属性。
上下文:我们的用户 ID 的结构是由一两个非必要字母组成的前缀,后跟 8-9 个重要数字。我的目标是去掉这些字母并利用剩余的数字通过 nslcd/sssd 分配 POSIX 用户/组 ID。不幸的是,无法对原始 LDAP 服务器进行修改,因为管理员不愿意进行更改。
问题:尽管进行了几天的研究和试验,包括咨询资源和使用 ChatGPT,我只成功地重写了 DN。我希望了解是否可以对 DN 以外的属性使用重写功能,如果可以,如何实现这一点。
尝试:
我尝试过使用数据库映射和 LDAP 以及 rwm 覆盖来操作属性。我的配置仅成功重写了 DN,但未成功重写其他属性。
最后一次尝试的示例:
...
moduleload back_ldap
moduleload back_meta
database meta
...
rebind-as-user true
rewriteEngine on
rewriteContext searchResult
rewriteRule "^(uid=[a-zA-Z]*)([0-9]*)(,.*)$" "$1$2$3,posixUID=$2" ":@"
问题:
- 是否可以使用 slapd 中的 rwm 重写 LDAP 属性?
- 如果是,我如何配置它以从用户 ID 属性中删除特定字符并保留数字?
任何指导或示例将不胜感激。谢谢你!
来自 openldap 开发者之一 Howard Chu在 2014 年的一条消息中:
很明显该
rwm
模块不会执行您想要的操作。