【问题标题】:programmatically querying LDAP permissions以编程方式查询 LDAP 权限
【发布时间】:2011-05-10 20:19:47
【问题描述】:

有没有办法以编程方式查询 OpenLDAP 2.4 服务器以找出允许用户修改某些对象的哪些属性?或者任何方式告诉服务器忽略当前用户无权进行的修改,而不是拒绝整个请求?

我正在寻找一种方法来避免硬编码哪些用户应该在我的 LDAP 管理 web 应用程序中看到哪些字段是可编辑的。

【问题讨论】:

  • 虽然我不知道头顶上的答案,但可以为您指明正确的方向:查看 Apache Directory Studio 源代码的源代码。它是 Apache 的 LDAP 服务器的官方 GUI 管理器。

标签: java permissions openldap unboundid-ldap-sdk


【解决方案1】:

请检查this 是否有帮助。

在此示例中,他试图更改特定对象的 ACL。您也许可以重复使用相同/相似的代码。

【讨论】:

  • 如果我没听错的话,它是从名为acl? 的操作属性中读取的?我在 ApacheDS 中显示了操作属性,但在任何地方都看不到任何 acl 属性。 acl 属性是否只显示专门针对该对象的规则?
  • 自从我停止使用 LDAP 已经有一段时间了,坦率地说,我从来不需要使用 ACL。在调试模式下,尝试像他在示例中那样获取对象的 ACL。 ACL 可以是对象的隐藏属性。在此处发布您的结果,可能对其他人有用。您可以使用 Google 阅读有关 LDAP 上的 ACL 的更多信息。
【解决方案2】:

我发现from the UnboundID folks 是没有检索 ACL 信息的官方标准,所以任何实现都是特定于服务器的。

UnboundID 的商业服务器提供了对特定条目进行有效访问控制的能力,显然 Sun/Oracle DSEE 和 OpenDS 实现了类似的功能。 389 Directory Server(也称为 Fedora Directory Server 也称为 Red Hat Directory Server)可能也有一些支持。

所以我想我的 OpenLDAP 服务器不走运,除非我想经历迁移到不同目录服务器的麻烦。

【讨论】:

  • 听到这个消息我很难过,先生!但是谢谢你把它放在这里,我相信有人或其他人将从讨论中受益!
  • UnboundID LDAP SDK(商业版)中可用的控件名称为 EffectiveRightsEntry。此请求控制为确定访问权限提供支持。
  • OpenLDAP 不支持此控件。
【解决方案3】:

如果 slapd 配置为使用 cn=config,那么您可能有一个获取 ACL 信息的快捷方式。 要让 slapd 使用 cn=config 而不是 slapd.conf: http://www.zytrax.com/books/ldap/ch6/slapd-config.html 至少如果 ACL 可通过 Ldap 获得,则可以在执行修改请求之前对其进行过滤。

slapadd -u 启用空运行(不写入后端)模式怎么样。

这对处理这种情况有用吗?

【讨论】:

  • 好主意,但我真正想要的是一种根据当前用户权限定制编辑表单的方法。不同的用户可以写入相同对象的不同属性,这需要以某种方式反映在 UI 中。由于无法询问服务器“此用户可以编辑此属性吗?”我将被某种硬编码的解决方案所困。
猜你喜欢
  • 2016-10-29
  • 2013-02-03
  • 1970-01-01
  • 2012-08-11
  • 2019-06-13
  • 2015-10-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多