2011-06-05 17 views
6

Estoy empezando a implementar el mecanismo de autorización y autenticación utilizando LDAP, para algunos sistemas existentes. En la etapa de desarrollo, estoy enfrentando una decisión de diseño difícil: ¿dónde deberían almacenarse los roles de los usuarios?Autorización LDAP

Si usara RDBMS, parece que habrá tres tablas: usuario, papel y user_role para asignar roles y usuarios.

Para sugerir soluciones disponibles. Pienso en almacenar las funciones de usuario en DB y los usuarios en LDAP, pero no estoy seguro de si son las mejores soluciones. Yo uso JBoss como mi servidor de aplicaciones.

Respuesta

7

En el punto de vista arquitectónico, tienes soluciones múltiples. Aquí hay una solución que mantiene todos sus datos en un directorio.

En su Directorio puede codificar sus 'Roles' con objetos de una clase con el significado de "grupo" como groupOfNames o group (según su Directorio). Los nombres con diferencia de usuario (DN) se codificarán en un atributo multivalor de estos objetos (generalmente member). El DN del objeto 'Role' puede, a cambio, codificarse en un atributo multivalor del objeto del usuario (por ejemplo, memberof)

En el caso de que su Directorio admita integridad referencial, puede actuar como un directorio del sistema. Entonces, los atributos member y memberOf pueden ser gestionados por el propio Directorio. Esto significa que si mueve un usuario de una Unidad organizativa a otra, el Directorio actualizará el atributo member de los objetos 'Rol' a los que pertenece el usuario.

En el otro caso (sin integridad referencial) su solicitud para gestionar la integridad de atributos.

Es corto pero espero que ayude.


Editado

Sed fuera todo lo que te recomiendo Apache Directory Studio, que es (para mí) uno de los mejores LDAP Browser. Esta herramienta le permitirá ver su Directorio y aprender LDAP más cordialmente. El uso de esta herramienta os muestro el camino ADAM (Active Directory Application Mode), el directorio gratuito de código de Microsoft los 'roles'

En la primera foto se puede ver AdminAdam como miembro del grupo de administradores:

AdminAdam as a member of the administrators group

en esta segunda imagen, se puede ver la presencia del grupo en el memberof atributo del adminAdam usuario.

the attribute memberof of the user adminAdam

ADAM está Suporting integridad referencial.

+0

difícil de entender, pero voy a seguir de esta manera. Soy nuevo en LDAP. Si no te complicas, puedes dar un ejemplo de árbol ... ¡Gracias! – Tioma

+0

He editado mi respuesta para darle una muestra. – JPBlanc

+0

Genial. ¿Qué hay del permiso para el Rol? debo seguir de la misma manera. Me temo que tomaré una estructura realmente difícil en el resultado. ¿Qué piensas? ¡Gracias de nuevo! – Tioma