use*_*054 7 java ldap rbac apacheds
我正在研究LDAP和Java中基于角色的安全性实现.具体来说,我需要在LDAP中表示以下对象:
角色基本上是权限组,可以将它们分配给用户或一组用户.
我想在LDAP中表示它们如下:
其目的是让用户或组快速访问该用户或组具有的角色列表.我知道我可以将用户和组放在角色的"成员"属性中,但是我必须扫描所有角色以找到列出此用户的角色.有没有办法在Person对象中使用类似"member"属性的东西?
通常,有没有人知道LDAP中基于角色的良好安全性实现?我找不到关于这个主题的好文档或教程.我目前正在使用ApacheDS作为LDAP服务器,但我愿意接受建议.
用户:inetOrgPerson
集合:organizationalUnit,但要注意尝试在LDAP目录中复制组织结构:这通常是一个错误,因为组织会发生变化,用户会在组织中移动.您应该考虑使用ou 属性.
角色:organizationalRole.我使用了一组角色作为groupOfUniqueNames,但这是一个错误,我应该继续使用organizationalRole,以便角色只是递归.
权限:这只是一个角色,或角色的属性.如果使用CMA,则在web.xml中定义它们,而不是LDAP.
正如我所说,不要试图让你的LDAP树镜像你的组织.让它镜像自己的组织.我在必要时使用多值属性.我使用organizationalUnit主要用于LDAP本身的层,或者我违反上述规则的地方;-)
OpenLDAP具有参照完整性覆盖,可以为您保留很多这样的内容.
Matt Butcher 在Mastering OpenLDAP中有一些关于LDAP结构的非常好的提示,以及Howes 等人在理解和部署LDAP目录服务中的更高层次的观点.