多级别安全模型使用什么LDAP设置

多级别安全模型使用什么LDAP设置,ldap,Ldap,我是LDAP新手,正在尝试找到实现多级安全模型的最佳设置。我需要LDAP,因为有几个应用程序由相同的用户使用,我想集中用户管理 对于多级安全模型,我的意思如下。我有公司、项目、用户和角色 我想为公司、项目和用户的每个组合分配角色。因此,companyA、projectA和userA的组合有RoleA,而companyA、projectB和userA的组合没有RoleA 我需要能够对用户执行ldap搜索,该搜索返回适用于每个组合公司、项目和角色的“记录” 我知道我在ldap服务器中创建了一个“对象

我是LDAP新手,正在尝试找到实现多级安全模型的最佳设置。我需要LDAP,因为有几个应用程序由相同的用户使用,我想集中用户管理

对于多级安全模型,我的意思如下。我有公司、项目、用户和角色

我想为公司、项目和用户的每个组合分配角色。因此,companyA、projectA和userA的组合有RoleA,而companyA、projectB和userA的组合没有RoleA

我需要能够对用户执行ldap搜索,该搜索返回适用于每个组合公司、项目和角色的“记录”

我知道我在ldap服务器中创建了一个“对象树”,例如设置如下

companyA
   |
   +---- project A
   |       |
   |       +----- roleA
   |               |
   |               +---- (attribute) member=userA
   |               +---- (attribute) member=userB
   |
   +---- project B
           |
           +----- roleB
                   |
                   +---- (attribute) member=userA
                   +---- (attribute) member=userB
但这将包含大量对象的重复,这对我来说似乎效率低下

我希望有4个数据、公司、项目、角色和用户的“列表”,还有一个包含这些条目组合的列表。有了更多的关系数据库经验,这感觉更符合逻辑。但我知道,在ldap环境中,这种设置根本不符合逻辑


我了解到ldap能够提供访问控制。使用ACI(访问控制指令)可以让某些用户访问某些对象。也许可以通过某种方式利用它来提供我需要的东西?

虽然我对这种设置的“原因”没有明确的实际理解,但我仍然可以提供一些建议。记住,你应该和其他人一起检查和讨论这些想法,并确保你理解其中的含义

诚然,如果您有重叠的用户(例如:userA同时参与项目A和项目B),就会出现您提到的数据重复。此外,这可能会导致不良的用户体验:如果用户A有两个帐户,他/她也有两个密码,必须以某种方式进行管理。除非您的组织需要这样的极端情况,否则用户肯定不会喜欢它。另外,您说过您希望集中用户管理,而不是进一步拆分它。;-)

在你的情况下,我可以提出一个有点不寻常的想法

<>而不是使用复杂的DIT(您可以称之为数据库或表中的“关系”术语),而是考虑利用自定义模式来代替.< /P> 可以想象,您可以创建一个称为辅助对象类的东西。我更喜欢使用对象类,因为它们是静态的(不是可填充的属性,而只是某种程度上的“标记”)

例如,在您的案例中,您可以创建一些辅助OCs:

  • 对象类:companyA
  • 对象类:companyB
  • 对象类:projectA
  • 对象类:projectB
  • 对象类:roleA
  • 对象类:roleB
一个人可以拥有任意数量的此类业主立案法团(零个、一个或全部)

结果是用户只有一个帐户(因此只有一个密码)。每个用户都可以拥有您认为合适的OCs组合,然后您可以根据需要配置所有客户端(例如:使用LDAP服务器的系统和软件),以利用自定义过滤器(查询)

这样做的缺点是(通常)模式数据不像实际数据那样被复制。因此,如果您有3台LDAP服务器,则需要将此模式数据加载到3台LDAP服务器上。较新版本的OpenLDAP支持动态配置,并且通过非常特定的设置,可以复制配置引擎设置,但这是一种罕见的设置,除了在理论文档中,我从未见过有人这样做。本着这种精神,我想这不是你的选择。如果我错了,请纠正我

关于你的ACI想法,我并不认为使用它们有什么好处。ACI缺乏文档和实验性(也可能不会编译到您正在使用的LDAP服务器的构建中)

您需要的是ACL(访问控制列表)。您可以控制特定人员和/或组对特定对象的访问。ACL最好记录在案,而不是实验性的

我希望这有帮助。如果你有问题等,请告诉我


Max

对象可以是其他对象的成员。对象的组合不允许。您不能在LDAP中表示这一点。用户要么有角色,要么没有角色。我喜欢使用对象类作为“标记”的想法,但这并不能解决我的问题。我需要公司/项目/角色组合的“标记”,这意味着为每个排列创建对象类。这不是一个可行的解决办法。关于ACI,我查看了OpenDJ和ApacheDS,但我没有阅读任何关于ACL的内容,只有ACI。ACI的设置相当复杂,尤其是对于ApacheDS。但也许我错过了什么。你能提供一些链接吗?我说的是OpenLDAP,而不是OpenDJ或ApacheDS(我不喜欢那些解决方案)。OpenDJ/ApacheDS很可能会自行决定将其称为ACIs。无论如何,我只知道OpenLDAP。