0

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


编辑

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

因为我喜欢 Django(并且更愿意学习 db.backends 肮脏的底层细节),并且因为这个项目中已经实现了很多东西,所以我想坚持使用 Django(除非有人非常我不应该这样做的充分理由,以及一个很好的选择!)。


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

3 回答 3

1

你做了很多大胆的陈述,例如“很多事情因为它的实现方式而被破坏”和“子类化远非完整”,你愿意详细说明它们吗?作为 django-ldapdb 的作者,我欢迎您就您希望更改/修复的内容提出建议,这就是 django-ldapdb 邮件列表的用途!

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

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

由于所有这些原因,我对编写一个真正的 LDAP 后端可以实现什么抱有严重的怀疑。我认为您总会有一些特定于 LDAP 的怪癖,而子类化 Model 就是允许这样做的。

于 2010-12-25T09:08:28.610 回答
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/

于 2010-11-02T16:39:07.167 回答
0

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

我很快就会尝试使用基于 django-orm 的解决方案来解决这个问题。

于 2012-02-09T11:27:34.700 回答