Active directory 使用自定义属性对LDAP用户进行分组

Active directory 使用自定义属性对LDAP用户进行分组,active-directory,ldap,openldap,apacheds,Active Directory,Ldap,Openldap,Apacheds,我有一个web应用程序,我想控制哪个用户可以看到什么数据。因此,我认为用户可以属于某个组(即DBA、中间件专家、UNIX人员等),而登录的用户只能在应用程序中看到其数据。 我希望LDAP进行身份验证。我假设LDAP中没有指定此类组(即,我不想使用LDAP组,因为我无法强制公司LDAP创建组并将用户放入这些组中) 我想到的是一个灵活的解决方案,比如能够在每个用户上使用自定义属性(比如命名为“acces\U groups”),这些组可以用逗号分隔的字符串登记。 我读到一个objectClass(比如

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

我想到的是一个灵活的解决方案,比如能够在每个用户上使用自定义属性(比如命名为“acces\U groups”),这些组可以用逗号分隔的字符串登记。
我读到一个objectClass(比如organizationalPerson)的模式必须改变才能做到这一点。但是,有没有一种简单的方法可以在LDAP中向用户添加这样的自定义属性(我指的是一家已经在工作的公司LDAP)? 或者,您将如何解决这个问题(在不中断/破坏当前LDAP的情况下)?
我没有说明什么类型的LDAP(OpenLDAP、active Directory等),因为我希望这里有一个通用的解决方案。

以下是两种可能的解决方案/实现:

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

    您可以定义
    acces\u groups
    属性并将其设置为多值。您还可以为需要的每个标志定义一个属性
    dba
    中间件
    ,并将其设置为布尔值,等等

    为什么我不会这样做:

    • 这是一种比使用LDAP中现成的内置机制更复杂、更具侵入性的方法
    • 如果您的LDAP管理员允许您这样修改LDAP模式,那么请他使用组应该没有问题,因为这种方法实现起来不那么复杂和耗时
    • 每天管理它只是一种痛苦,因为你没有完整的机制。“模拟”组上的所有“CRUD”操作都必须“手动”完成
      • 如果要删除组,则必须删除设置该组的所有用户的属性
      • 如果要列出“组”,则必须搜索属性设置为正确值的所有用户
      • 等等
  • 使用组:您确实可以创建组,如
    dba
    中间件
    等,并将用户分配给这些组

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

与“逗号分隔字符串”相比,多值属性的使用是常用的。非常好的解释,谢谢!这很有道理。