为类似ISP的组织deviseLDAP目录布局

我pipe理一些小型组织的服务器,为其成员提供类似ISP的服务(虚拟主机,在多个域和相关的IMAP帐户,Jabber帐户上的邮件地址),我想集中所有帐户数据在LDAP中。 我是LDAP新手,现在我需要devise和组织LDAP目录布局。

我遇到的最大问题是如何将用户映射到各种帐户,例如,单个用户当前有多个IMAP和Jabber帐户,这些帐户与各个域上的各种地址相关联,每个帐户都有不同的密码,我需要保留这些帐户。

那么,我将如何组织LDAP目录布局?
如果用户和各种账户在不同的树中,然后通过一个通用的uid(即ou = people,dc = example,dc = net)连接起来,用inetOrgPersons描述用户,然后为账户分开树,例如ou = imapAccounts,dc =例如,dc = net,ou = jabberAccounts,dc = example,dc = net等自定义模式? 还是有更好的方法,因为这看起来太像使用关系数据库的解决scheme?

资源/书籍/现实世界的例子的任何build议在这里有帮助吗? 我所看到的大多数资源似乎都假设一个人只有一个邮件/ jabber账户等,并希望使用一个密码。 我不能相信这是不寻常的互联网服务供应商允许他们的客户有多个帐户,例如,为了让他们分开私人和工作邮件,或鼓励不同的密码不同的服务,以便保存的Jabber密码不妥协导致该客户的所有其他服务的妥协。


我将尝试更具体地介绍我的用例,并解释我目前的数据模型:

有独特的用户是我需要一些联系人数据,并在虚拟主机上有一个(单)shell帐户的人。 每个独特的用户可能有多个IMAP和Jabber帐户。

回答devise问题:

  • 用户可以被认为是账户的容器,但是它也代表了一个必须有联系人数据的人。
  • 用户永远不会共享帐户。
  • 帐户永远不会在用户之间移动。
  • 这些盒子运行RHEL6,我需要与PAM,Postfix / Dovecot和ejabberd集成,所以LDAP和RDB都可以集成。

你正在接近这个错误的方式,因为你已经select了一项技术,现在正试图将你的数据模型推入其中。 首先devise您的DATAMODEL ,然后find一个易于实现的技术。

从白板开始,写下你需要跟踪的东西,然后确定它们是如何相互关联的。 如果您使用自然的层次结构/树,LDAP是一个不错的select。 如果你用一个类似networking的东西来结束关系系统可能会更好。


你在devise时要问的一些问题:

  • “用户”是一个容器(包含帐户)?
    (如果是这种情况,每个账户都只能指向一个用户,用LDAP的说法,用户将是一个OU,账户将在OU中创build,用关系式来说,账户必须有一个强制的(NOT NULL)外键指针在用户)

  • 用户会共享帐户吗?
    (关系build模在这里经常效果更好)

  • 账户会在用户之间移动(还是用户在账户之间移动)?

  • 什么样的系统将需要与这个数据存储集成?