LDAP授权

时间:2011-06-05 21:37:09

标签: authentication ldap authorization roles security-roles

对于某些现有系统,我开始使用LDAP实现授权和身份验证机制。在开发阶段,我面临一个困难的设计决策:应该在哪里存储用户角色?

如果我使用RDBMS,看起来会有三个表:用户角色 user_role 来映射角色和用户。

请提供可用的解决方案。我考虑将用户角色存储在LDAP中的用户角色和用户,但不确定这是否是最佳解决方案。我使用JBoss作为我的应用程序服务器。

1 个答案:

答案 0 :(得分:7)

从架构的角度来看,你有多个解决方案。这是一个将所有数据保存到目录中的解决方案。

在您的目录中,您可以使用类别为“groupOfNamesgroup(取决于您的目录)的类的对象对”角色“进行编码。用户区分名称(DN)将在这些对象的多值属性中编码(通常为member)。作为回报,“角色”对象DN可以在用户对象的多值属性中编码(例如:memberof

如果您的目录支持参照完整性,它可以充当系统目录。然后,目录本身可以管理membermemberOf属性。这意味着如果您将用户从组织单位移动到另一个组织单位,则目录将刷新用户所属的“角色”对象的member属性。

在另一种情况下(无参考完整性),您的应用程序必须管理属性完整性。

它很短但我希望它有所帮助。


被修改

渴望所有我推荐你Apache Directory Studio,这是(对我来说)最好的LDAP浏览器之一。 tHis工具将允许您查看您的目录并更加友好地学习LDAP。使用此工具,我向您展示ADAM(Active Directory应用程序模式)的免费Microsoft代码编目方式'角色'

在第一张图片中,您可以看到AdminAdam是管理员组的成员:

AdminAdam as a member of the administrators group

在第二张图片中,您可以在用户adminAdam的属性memberof中看到该组的存在。

the attribute memberof of the user adminAdam

ADAM支持参考完整性。