我们已经运行了 openLDAP,但情况有些特殊?我不知道该如何描述。尝试找到比我们现有的更好的解决方案。
tl;dr:如何允许:
- FooCo 系统允许uid=oracle,ou=fooco和uid=sysadmin1,ou=us登录
- BarCo 系统允许uid=oracle,ou=巴可和uid=sysadmin1,ou=us登录
无需在每个 fooco 和 barco subou 中重复 uid=sysadmin1:
dc=ourorg ou=fooco uid=oracle ou=barco uid=oracle ... ou=us uid=sysadmin1 uid=sysadmin2 ...
更多详细信息:我们为多个独立的子组织(本例中为 FooCo 和 BarCo)提供服务(系统),但拥有自己的“全局帐户”。我们试图运行单个 LDAP(见下文)。例如,每个子组织都坚持要求其 oracle db 服务帐户(例如运行 db 进程的登录名)称为“oracle”(我输掉了这场战斗)。因此,显然我们不能使用相同的 RDN,但我们可以通过将帐户 uid 放在不同的子树中(如上所述)来使用不同的 DN。但是,当针对基本 dc(例如 RHEL7 和 AIX)进行身份验证时,我们如何具体“帮助”FooCo 拥有的服务器使用 FooCo 子树,以及 BarCo 使用 Barco 子树(再次使用 RHEL7 和 AIX)?简单的答案是,即我们配置了一个 FooCo 服务器以使用 ou=FooCo,dc=ourdc 作为 BASEDN。但是,我们还有其他用户(系统管理员团队)也需要能够登录(理想情况下,使用 LDAP)。将系统管理员放在每个子树中也毫无意义 - 他们应该在某处有一个条目。
我们尝试了别名/可扩展对象(一点点),即 uid=aliassa1,ou=fooco -> uid=sysadmin1,ou=us,虽然它对于 ldapsearch 工作正常,但它对于身份验证/登录/su/等不起作用。(但 ldap.conf 已设置“DEREF always”)。
那么,针对上述情况,您有什么解决方案吗?有没有什么创造性的方法来解决这个问题?谢谢!
答案1
可能性取决于具体环境,我无法对 AIX 做出评论。
例如,较新版本的固态存储系统在 RHEL 上支持多个搜索基础
ldap_search_base = ou=fooco,dc=ourorg?subtree?ou=us,dc=ourorg?subtree?
并且应该可以对其他 LDAP 库执行类似操作(例如,在 Linux 上使用时设置与和pam_filter
匹配的)。ou=foo
ou=us
pam_ldap
另一个选择可能是将登录限制到特定组(例如,属于的所有用户)ou=foo
。ou=us
这甚至可以通过某些 LDAP 服务器(例如,使用OpenLDAP 上的覆盖)cn=foologin,cn=groups,dc=ourcorp
自动实现。dynlist