Active directory 使用自定义属性对LDAP用户进行分组
我有一个web应用程序,我想控制哪个用户可以看到什么数据。因此,我认为用户可以属于某个组(即DBA、中间件专家、UNIX人员等),而登录的用户只能在应用程序中看到其数据。Active directory 使用自定义属性对LDAP用户进行分组,active-directory,ldap,openldap,apacheds,Active Directory,Ldap,Openldap,Apacheds,我有一个web应用程序,我想控制哪个用户可以看到什么数据。因此,我认为用户可以属于某个组(即DBA、中间件专家、UNIX人员等),而登录的用户只能在应用程序中看到其数据。 我希望LDAP进行身份验证。我假设LDAP中没有指定此类组(即,我不想使用LDAP组,因为我无法强制公司LDAP创建组并将用户放入这些组中) 我想到的是一个灵活的解决方案,比如能够在每个用户上使用自定义属性(比如命名为“acces\U groups”),这些组可以用逗号分隔的字符串登记。 我读到一个objectClass(比如
我希望LDAP进行身份验证。我假设LDAP中没有指定此类组(即,我不想使用LDAP组,因为我无法强制公司LDAP创建组并将用户放入这些组中) 我想到的是一个灵活的解决方案,比如能够在每个用户上使用自定义属性(比如命名为“acces\U groups”),这些组可以用逗号分隔的字符串登记。
我读到一个objectClass(比如organizationalPerson)的模式必须改变才能做到这一点。但是,有没有一种简单的方法可以在LDAP中向用户添加这样的自定义属性(我指的是一家已经在工作的公司LDAP)? 或者,您将如何解决这个问题(在不中断/破坏当前LDAP的情况下)?
我没有说明什么类型的LDAP(OpenLDAP、active Directory等),因为我希望这里有一个通用的解决方案。以下是两种可能的解决方案/实现:
- 假设:您可以添加一个模式,而不改变
objectClass。(因为更改已建立的架构会使LDAP不符合标准) 然后将此objectClas添加到所有用户,以允许他们使用此模式定义的属性 您可以定义organizationalPerson
属性并将其设置为多值。您还可以为需要的每个标志定义一个属性acces\u groups
,dba
,并将其设置为布尔值,等等 为什么我不会这样做:中间件
- 这是一种比使用LDAP中现成的内置机制更复杂、更具侵入性的方法
- 如果您的LDAP管理员允许您这样修改LDAP模式,那么请他使用组应该没有问题,因为这种方法实现起来不那么复杂和耗时
- 每天管理它只是一种痛苦,因为你没有完整的机制。“模拟”组上的所有“CRUD”操作都必须“手动”完成
- 如果要删除组,则必须删除设置该组的所有用户的属性李>
- 如果要列出“组”,则必须搜索属性设置为正确值的所有用户
- 等等
- 使用组:您确实可以创建组,如
、dba
等,并将用户分配给这些组中间件
- 它将允许您使用组成员ship,并使用用户所属的组自动填充用户中的属性
- 它是LDAP标准,只需要处理数据,而不需要处理LDAP配置(包括停机、可能的错误/挫折等)
- 如果您的公司允许您修改LDAP配置和用户数据,那么它还应该允许您创建组并为其分配人员