LDAP – 涉及多个uid = oracle和其他用户的复杂configuration

我们已经运行了openLDAP,但有点独特? 我不确定如何描述的情况。 试图find比我们所得到的更好的解决scheme。

tl; dr:如何允许:

  • 一个FooCo系统允许uid = oracle,ou = foocouid = sysadmin1,ou =我们login
  • BarCo系统允许uid = oracle,ou = barcouid = sysadmin1,ou =我们login
  • 没有在每个fooco和barco子文件夹中复制uid = sysadmin1:

    dc=ourorg ou=fooco uid=oracle ou=barco uid=oracle ... ou=us uid=sysadmin1 uid=sysadmin2 ... 

更多细节:我们为多个独立的子机构(例如FooCo和BarCo)提供服务(系统),但拥有自己的“全球账户”。 我们正在尝试运行一个LDAP(见下文)。 而且,例如,每个子组织都坚持认为他们的oracle数据库服务帐户(例如,运行数据库进程的login名)被称为“oracle”(我失去了那场战斗)。 所以显然我们不能使用相同的RDN,但是我们可以通过将帐户uid放在不同的子树中使用不同的DN(如上所述)。 但是,在针对基本dc(例如RHEL7和AIX)进行身份validation时,我们如何特别“帮助”由FooCo拥有的服务器使用FooCo子树,而BarCo使用Barco子树(再次使用RHEL7和AIX)? 简单的答案就是我们configuration一个FooCo服务器来使用ou = FooCo,dc = ourdc作为BASEDN。 但是,我们有其他用户(一个系统pipe理员团队)也需要能够login(理想情况下,使用LDAP)。 把系统pipe理员放在每个子树中都没有任何意义,他们应该有一个入口。

我们尝试了别名/ extensibleObject(一点点),即uid = aliassa1,ou = fooco – > uid = sysadmin1,ou = us,虽然它适用于ldapsearch,但它不适用于身份validation/login/ su /等等 (但是ldap.conf有“DEREF always”设置)。

那么,给出上述的解决scheme的任何想法? 一个创造性的方式来解决这个问题? 谢谢!!

什么是可能的依赖于特定的环境,我不能评论AIX。

例如,RHEL上的SSSD的更新版本支持多种search条件

 ldap_search_base = ou=fooco,dc=ourorg?subtree?ou=us,dc=ourorg?subtree? 

并且应该可以做类似于其他LDAP库的事情(例如,在Linux上使用pam_ldap时,设置与ou=fooou=us匹配的pam_filter )。

另一个select可能是限制login到特定的组(例如, ou=fooou=us所有用户ou=us属于cn=foologin,cn=groups,dc=ourcorp ,甚至可以通过某些LDAP服务器实现自动化(例如使用dynlist覆盖在OpenLDAP上)。