gpt4 book ai didi

authentication - LDAP授权

转载 作者:行者123 更新时间:2023-12-04 06:37:18 26 4
gpt4 key购买 nike

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

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

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

最佳答案

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

在您的目录中,您可以使用来自具有“组”含义的类的对象来编码您的“角色”,例如 groupOfNamesgroup (取决于您的目录)。用户专有名称 (DN) 会将它们编码在这些对象的多值属性中(通常为 member)。作为返回,“角色”对象 DN 可以编码为用户对象的多值属性(例如:memberof)

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

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

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

已编辑

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

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

AdminAdam as a member of the administrators group

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

the attribute memberof of the user adminAdam

ADAM 支持引用完整性。

关于authentication - LDAP授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6246030/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com