Django: en busca de una implementación de un backend LDAP db (o para cualquier ayuda en esto)

StackOverflow https://stackoverflow.com/questions/4079354

  •  28-09-2019
  •  | 
  •  

Pregunta

Después de este posterior (que estaba buscando una biblioteca que me permite declarar modelos de Django en un backend LDAP), he decidido utilizar ldapdb . Después de haber jugado un rato con esta biblioteca, me di cuenta de que no alcanza el nivel de control que necesito, y por lo tanto busco para otras soluciones. Lo que estoy pensando ahora está implementando un backend db Django basado en python-ldap.


editar

Necesito esto porque estoy actualmente implementando un sistema de gestión de usuarios / grupos en un directorio LDAP (que se requiere para poder manipular no sólo los usuarios, pero diferentes clases de objetos LDAP también). Así que, básicamente, me gustaría ser capaz de utilizar (casi) completa ORM de Django, pero con un backend LDAP.

Porque amo a Django (y sería bastante motivado en el aprendizaje de los sucios detalles de bajo nivel de db.backends), y porque ya hay un montón de cosas implementadas en este proyecto, me gustaría que se adhieren a Django (a menos que alguien tiene una muy buena razón por la que no debería, y una muy buena alternativa!).


  • Haga un poco de ustedes tienen una solución más sencilla a este problema?
  • ¿Algunos de ustedes saben acerca de una aplicación de tal cosa (LDAP backend db)?
  • ¿Algunos de ustedes saben algunas buenas lecturas para empezar a trabajar en "la implementación de un back-end db Django"?
  • Son algunos de ustedes interesados ??en colaborar en este proyecto?
¿Fue útil?

Solución 3

Parece que no hay muy buena solución. Y hacer todo sin ORM de Django no es una solución muy buena.

Soy más nuevo intento de resolver ese problema pronto, con una solución basada en Django-ORM.

Otros consejos

Usted hace una gran cantidad de declaraciones audaces como "un montón de cosas rotas debido a la forma en que se implementa" y "la subclasificación es muy, muy lejos de ser completa", ¿le importaría elaborar sobre ellos? Como el autor de django-ldapdb daría la bienvenida a sus sugerencias en cuanto a lo que le gustaría cambiar / fijo, eso es lo que la lista de correo django-ldapdb es para!

Para su información, que tomó el enfoque de la subclasificación de la clase de modelo, porque lo normal es que quieren tener sólo un par de modelos que utilizan el servidor LDAP, no todos los modelos en su aplicación, y Django 1.1 no admite varias bases de datos. Además, LDAP es muy diferente de backends SQL existentes:

  • no es una base de datos relacional
  • no es "plana", es un árbol parecido
  • la verdadera "clave principal" para una entrada es el nombre distinguido (DN), que no es un campo real, sino un valor calculado a partir de otros campos
  • campos puede ser de varios valores

Por todas estas razones, tengo serias dudas en cuanto a lo que puede lograrse escribiendo un verdadero backend LDAP. Creo que siempre tendrá algunas peculiaridades específicas LDAP, y la subclasificación modelo permite precisamente eso.

Su mejor apuesta es probablemente para escribir un motor de autenticación para la aplicación. Aquí hay alguna documentación al respecto:

http: // docs .djangoproject.com / en / dev / temas / auth /? from = olddocs # escribir-una-autenticación-backend

Y aquí es un artículo que explica cómo extender el modelo de usuario para que pueda utilizar este motor de autenticación sin problemas:

http: // scottbarnham .com / blog / 2008/08/21 / extender el-django-user-modelo-con-herencia /

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top