我认为这可能是一个复杂的解释简单的问题。
我希望有人可以帮助我如何设置我的LDAP树。 我想有团队和用户。 用户可能属于一个或多个组。 这些组代表用户应该访问的不同服务/应用程序,即使用VPNlogin。
我正在使用OpenLDAP,我有以下树结构(与域example.com)。
-dc=example,dc=com --ou=groups ---cn=VPN (members=user1) ---cn=redmine (members=user1,user2) ---cn=vCenter (members=user2,user3) --ou=users ---cn=user1 ---cn=user2 ---cn=user3
所有用户都是对象类inetOrgPerson,posixAccount和顶部(我用phpLdapAdmin中的通用:用户帐户来创build它们)。 我有memberOf覆盖并运行,所以类似于(memberOf = cn = VPN,ou = groups,dc = example,dc = com)的查询工作。
现在的问题 。 我使用的一些应用程序(例如redmine)具有可以定义要使用的filter的function,因此可以使用memberOf覆盖。 其他应用程序/服务没有这个,但只有一个基地dn在其中进行search,即vCenter执行以下查询,
base="dc=xyzz,dc=se" filter="(&(objectClass=inetOrgPerson)(objectClass=inetOrgPerson)(uid=user1))
没有办法改变除了它所search的基本dn之外的任何东西。我如何使用ldap来检查用户是否应该有权访问vCenter,前提是该用户是LDAP树中vCenter组的成员。
遇到这个问题让我觉得我误解了LDAP的工作原理。