我正在设置一个带有LDAP身份验证的Web应用程序,我不太清楚如何处理用户数据库关系(例如,创建,分配给审批者,成员)
到目前为止,我提出了以下选项:
当用户首次登录时,检查用户是否存在记录 表。如果没有,请执行ldap查找以检索名称和电子邮件 创建用户记录。添加用户时会发生同样的事情 到列表或选中。 (可能存储最后的ldap查找日期和 x天后登录时刷新细节)
仅使用cn创建用户记录,并对名称和电子邮件执行动态查找
只需存储cn而不是fk,然后对名称和电子邮件执行动态查找。
我倾向于使用选项1,因为它可以使ORM保持简单并减少查找次数......另一方面,它似乎有点过度设计。
应该理解为什么应该避免上述选项的任何替代或原因。
答案 0 :(得分:1)
这可能取决于您的用例。
只需进行一些比较:
事实上,我见过的大多数应用程序都使用修改后的选项1.这是因为LDAP通常只是受支持的身份验证选项之一,并且在许多情况下,您希望存储其他数据每个用户和与任何其他实体一样使用条目(谈到关系,会员资格......)。与您的描述的重要区别是:
请注意,还有第四种可能性 - 不要直接与LDAP集成,并让IdM system为用户提供应用程序。但是,这需要在目标环境中存在工作的IdM。