Django:寻找ldap db后端的实现(或者对此有任何帮助)

时间:2010-11-02 15:42:08

标签: django ldap django-database

post之后(我正在寻找允许我在ldap后端声明Django模型的库),我决定使用ldapdb。在与这个库玩了一段时间后,我发现它没有达到我需要的控制水平,因此我正在寻找其他解决方案。我现在想的是基于python-ldap实现Django数据库后端。


修改

我需要这个,因为我目前正在ldap目录上实现一个用户/组管理系统(它要求不仅能够操作用户,还能操作不同类别的ldap对象)。所以基本上,我希望能够使用(几乎)完整的Django orm,但是使用ldap后端。

因为我喜欢Django(并且会非常积极地学习db.backends的脏的低级细节),并且因为在这个项目中已经实现了很多东西,所以我想坚持使用Django(除非有人我有一个非常好的理由不应该,也是一个非常好的选择!)。


  • 你们中有些人对这个问题有一个更简单的解决方案吗?
  • 你们有些人知道这种事情的实现吗(ldap db backend)?
  • 你们中的一些人是否知道开始“实现Django数据库后端”的一些好的读物?
  • 你们有些人有兴趣帮助这个项目吗?

3 个答案:

答案 0 :(得分:1)

你做了很多大胆的陈述,例如“由于实施方式而导致许多事情被破坏”和“子类化非常不完整”,您是否愿意详细阐述它们?作为django-ldapdb的作者,我欢迎你提出你想改变/修改的建议,这就是django-ldapdb邮件列表的用途!

仅供参考,我采用了继承Model类的方法,因为您通常只想使用LDAP后端的几个模型,而不是应用程序中的所有模型,而django 1.1不支持多个数据库。此外,LDAP与现有的SQL后端非常不同:

  • 不是关系数据库
  • 它不是“扁平的”,它是一棵树状的
  • 条目的真正“主键”是专有名称(DN),它不是实际字段,而是从其他字段计算的值
  • 字段可以是多值的

由于所有这些原因,我对通过编写真正的LDAP后端可以实现什么感到严重怀疑。我认为你总会有一些特定于LDAP的怪癖,而子类化Model只允许这样。

答案 1 :(得分:0)

您最好的选择可能是为应用程序编写身份验证后端。这是一些关于它的文档:

http://docs.djangoproject.com/en/dev/topics/auth/?from=olddocs#writing-an-authentication-backend

这篇文章解释了如何扩展User模型,使您能够无缝地使用此身份验证后端:

http://scottbarnham.com/blog/2008/08/21/extending-the-django-user-model-with-inheritance/

答案 2 :(得分:0)

似乎没有真正好的解决方案。在没有Django的ORM的情况下做任何事情也不是一个好的解决方案。

我将尝试尽快解决这个问题,使用基于django-orm的解决方案。