【问题标题】:Role-based security implementation in LDAPLDAP 中基于角色的安全实施
【发布时间】:2011-12-22 15:26:57
【问题描述】:

我正在研究 LDAP 和 Java 中基于角色的安全实施。具体来说,我需要在 LDAP 中表示以下对象:

  • 用户
  • 企业用户组 - 人力资源、财务等
  • 权限 - DOCUMENT_READ、DOCUMENT_MODIFY 等
  • 角色 - 管理员、访客等

角色基本上是权限组,可以分配给一个用户或一组用户。

我正在考虑在 LDAP 中将它们表示如下:

  • Users - 具有 userPassword 属性的 Person 和 uidObject 类。
  • 用户组 - 组织单元类,用户在该类下 位于。
  • 角色 - groupOfNames 对象类。
  • 权限 - 不确定这个,也许还有 groupOfNames 类。

这个想法是让用户或组快速访问该用户或组拥有的角色列表。我知道我可以将用户和组放在角色的“成员”属性中,但是我必须扫描所有角色以查找列出了该用户的角色。有没有办法在 Person 对象中拥有类似“member”属性的东西?

一般来说,有谁知道 LDAP 中基于角色的良好安全实施?我找不到关于这个主题的好的文档或教程。我目前使用 ApacheDS 作为 LDAP 服务器,但我愿意接受建议。

【问题讨论】:

    标签: java ldap rbac apacheds


    【解决方案1】:

    还有一个选择:查看基于属性的访问控制 ()。 ABAC 是 RBAC 的演变。它使用属性(关于用户、资源、上下文的标签)和策略来确定什么是允许的,什么是不允许的。

    示例:如果采购订单的金额

    您可以在NIST website 上阅读有关 ABAC 的更多信息。

    【讨论】:

      【解决方案2】:

      查看堡垒。它符合 ANSI RBAC INCITS 359 并建立在 LDAP 之上。源代码是开源的,您可以从此处下载包含 OpenLDAP 的预构建二进制文件:http://iamfortress.org/

      【讨论】:

        【解决方案3】:

        用户:inetOrgPerson

        集合:organizationalUnit,但要小心尝试在 LDAP 目录中复制您的组织结构:这通常是一个错误,因为组织发生变化并且用户在组织中移动。您应该考虑使用 ou 属性

        角色:组织角色。我使用角色组作为 groupOfUniqueNames,但这是一个错误,我应该继续使用 organizationsRole,以便角色只是递归的。

        权限:这只是一个角色,或者一个角色的属性。如果您使用 CMA,它们是在 web.xml 中定义的,而不是 LDAP。

        正如我所说,不要试图让您的 LDAP 树镜像您的组织。使其反映它自己的组织。我在必要时使用多值属性。我将organizationUnit 主要用于LDAP 本身内的层,或者我违反了上述规则的地方;-)

        OpenLDAP 有一个参照完整性覆盖层,可以为您提供很多信息。

        在 Matt Butcher 的 Mastering OpenLDAP 中有一些关于 LDAP 结构的非常好的提示,而在 Howes 的 Understanding and Deploying LDAP Directory Services 中有更高层次的视图等。

        【讨论】:

        • 谢谢,我试试。 ou 属性是个好主意。在我的场景中,一个人可以属于多个组织单位,所以我不确定哪个更好 - 具有多个 ou 属性,或者也可以将组设为 groupOfNames。
        • @EJP 请您详细说明您对角色的评论。使用 groupOfUniqueNames 的错误究竟是什么?你是如何递归使用 organizationsRoles 的?您的意思是从层次上讲,我认为这意味着单个角色不能在多个组中使用?
        • @PeterCarpenter 我的意思是递归。一个角色可以是另一个角色的角色占用者。我不明白你的最后一句话。
        • @EJP 我的意思是把它变成一个子节点——但你已经回答了我的问题。谢谢!
        猜你喜欢
        • 2017-10-03
        • 1970-01-01
        • 2012-03-18
        • 2013-03-21
        • 2011-05-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-19
        相关资源
        最近更新 更多