使用自定义属性

时间:2017-05-24 14:09:23

标签: active-directory ldap openldap apacheds

我有一个Web应用程序,我想控制哪个用户可以看到哪些数据。所以我认为用户可以属于一个组(即DBA,中间件专家,UNIX人员等),登录用户只能在应用程序中查看其数据。
我希望LDAP进行身份验证。我假设在LDAP中没有指定这样的组(即,我不想使用LDAP组,因为我不能强制公司LDAP创建组并将用户放在这些组中)。

我认为这是一个灵活的解决方案,例如能够在每个用户上使用自定义属性(比如名为'acces_groups'),这些组可以用逗号分隔字符串。
我读到必须改变objectClass(如organizationalPerson)的模式才能做到这一点。但有没有一种简单的方法可以在LDAP中向用户添加这样的自定义属性(我说的是已经在运行的公司LDAP)? 或者你将如何解决这个问题(不破坏/破坏当前的LDAP)? 我没有说出什么样的LDAP(OpenLDAP,活动目录等),因为我想要一个通用的解决方案。

1 个答案:

答案 0 :(得分:0)

这是两种可能的解决方案/实施方式:

  • 您的假设:您可以添加架构而不是更改organizationalPerson objectClass。 (因为更改已建立的架构会使您的LDAP不能标准化) 然后将此objectClas添加到所有用户,以允许他们使用此模式定义的属性。

    您可以定义acces_groups属性并使其成为多值。您还可以为每个标记定义一个属性,您需要dbamiddleware等,并将其设置为布尔值等。

    为什么我不会这样做:

    • 这是一种比使用LDAP中现有的内置机制更加复杂和侵入性的方法。
    • 如果您的LDAP管理员允许您修改这样的LDAP模式,那么要求他使用组应该没有问题,因为这种方法实现起来要简单得多,而且非常耗时。
    • 每天管理它只是一种痛苦,因为你没有完整性机制。所有" CRUD"操作"模拟"小组必须完成"手动"
      • 如果要删除组,则必须删除设置该组的所有用户的属性。
      • 如果要列出"组",则必须搜索具有正确值设置属性的所有用户
  • 使用群组:您确实可以创建dbamiddleware等群组,并将用户分配到这些群组。

    • 它允许您使用群组成员发送并自动使用他所属的群组填充您的用户中的属性
    • 这是LDAP标准,只需处理数据而不是处理LDAP配置(涉及停机,可能的错误/挫折等)。
    • 如果您的公司允许您修改LDAP配置和用户数据,那么它还应该允许您创建组并为其分配人员