在LDAP中表示RBAC actor

时间:2009-05-28 22:51:01

标签: ldap rbac

使用LDAP存储实现RBAC模型时(我使用Apache Directory 1.0.2作为测试平台),某些actor显然可以映射到特定的objectClasses:

  • 资源 - 我没有看到这个的清晰映射。 applictionEntity似乎只是用于此目的。
  • 权限 - 权限可以被视为单一用途的角色;显然我没有考虑LDAP权限,因为它们管理对LDAP对象和属性的访问,而不是对资源的RBAC权限
  • 角色 - 直接映射到groupOfNames或groupOfUniqueNames,对吧?
  • 用户 - 人

过去我见过模型,其中资源没有以任何方式在目录中处理,权限和角色被映射到Active Directory组。

有没有更好的方式来代表这些演员?如何讨论模式的良好映射和意图?

2 个答案:

答案 0 :(得分:4)

RBAC不是RBAC不是RBAC而RBAC在纸面上很难,但在现实生活中几乎不可能实现。

每个人都有自己的RBAC“想法”,大多数人都会对与RBAC相关的每件事使用不同的术语。通常,从LDAP实现的角度来看,很少有所有“部分”在LDAP中进行正确的实现。

简单来说,“零件”是:

S =主题=个人或自动代理或用户

P = Permissions =批准访问目标资源的方式

T =目标资源=您要为其分配权限的对象

角色至少需要关联权限和用户。 目标资源可能完全在LDAP之外。因此它可以是Tomcat服务器上的应用程序,也可以是读取LDAP服务器中“其他”条目的权限。

通常,您在LDAP中所做的最好的事情就是设置一个包含用户列表的对象,如果有一些资源在LDAP中,则为这些目标资源分配正确的目录权限。

然后实施的问题很少。

我们现在需要一个实施我们角色的政策。因此,如果没有关于如何使用它的政策,我们的角色,我们将其称为USER-READ-ONLY。

在我们的案例中,我们可以说USER-READ-ONLY Role可以读取组织中的任何内容。

所以我们现在有一个政策。该政策存储在哪里?策略的数字表示存储在“策略信息点”或PIP中。

我们如何解释PIP提供的政策?政策由政策决策点(PDP)解释。

谁决定主题(用户)是否可以访问资源?政策执行点(PEP)。

将所有这些政策内容放在一起,我们最终得到政策的数字表示,由政策信息点提供给政策决策点,然后决策点将决策传递给允许或拒绝访问的政策执行点。 / p>

所以在我们的RBAC故事中,PIP,PDP和PEP在哪里? 好吧,如果目标资源在LDAP目录中,那么它是作为PIP的LDAP目录(我们可能硬编码并且不是抽象的,PIP同样也是PEP,也是PEP,这很容易。

但是如果它是我们的Tomcat应用程序,它必须是Tomcat应用程序中的一个可以中断的方法知道必须使用一种方法来说“我有这个主题(用户)并且他想要访问这个目标资源(库存)到执行此权限(只读)“。

当然,所有这些东西都有一些标准。 (Google XAML,RFC3198,ISO10181-3,NIST)但它们是标准,在实际实施方面存在很大差距。

所以请记住,RBAC的真正实现很难。

当然,恕我直言,我们应该了解RBAC,研究论文并将其作为战略方向,但是在广泛的供应商和应用程序中实际实现,我们还没有。

-Jim

答案 1 :(得分:0)

查看Fortress,它是使用LDAP的ANSI RBAC(INCITS 359)的真实开源实现。 http://iamfortress.org/

是的,实施起来相当困难,但我们已经解决了这个问题超过10年。 ; - )