Tengo un sitio web que tiene ciertos elementos de menú que deben ocultarse a los usuarios finales.
El sitio web tiene PHP en el front-end y Java y Spring en el back-end, implementado en un sistema operativo Linux en una infraestructura de VM, aunque la pila de tecnología completa no se entiende completamente ya que es un sistema heredado y no completamente documentado
Necesito proteger el sitio y las funciones según los controles de acceso: los usuarios se asignan a grupos y grupos que tienen acceso a diferentes elementos del menú (funciones). También tengo que proporcionar una interfaz para que los administradores cambien la asignación de funciones a grupos. También requiero un control preciso sobre el nivel de acceso a los diferentes métodos de lectura / escritura.
Entiendo que necesito ACL. ¿Cuál es el diseño de mejores prácticas para tal requisito?
Opciones y preguntas:
- DB: los problemas negativos serían: el estilo antiguo y la creación de mi propia función de administración de identidad con todos sus inconvenientes y complejidades.
- LDAP: problemas negativos: de nuevo mi propio sistema de administración de identidades, pero probablemente más simple que DB, pero no estoy seguro de cómo funciona la asignación de niveles de función a grupos. ¿Los proveedores de LDAP proporcionan la asignación de grupos a funciones particulares (es decir, dado un elemento del menú "cuentas"? Solo quiero que Finanzas pueda ver el menú de cuentas).
- OpenAM y soluciones similares que externalizan la gestión de identidades: ¿puede funcionar? He estado leyendo acerca de esto: la autenticación que entiendo, pero la autorización a nivel de grano fino no. Parece que necesita un producto LDAP configurado como fuente de datos, así que, ¿qué proporciona OpenAM sobre la opción 2 anterior porque sería lo mismo? Con OpenAM, parece que configuro un servicio de identidad, pero me aseguro a nivel de contenedor, por lo que el servidor web y el servidor de aplicaciones, pero da su propia página de inicio de sesión. Supongo que es posible configurarlo para acceder a las hojas de estilo para que se integre con la página de inicio de sesión actual, pero ¿alguien ha hecho eso en alguno de estos tipos de productos para asegurarse de que sea posible? Además, ¿esto cumple mis requisitos de ACL? ¿Es este el mejor diseño y cuanto más complicado de configurar es en comparación con LDAP y las configuraciones de aplicaciones?
Otras preguntas:
- ¿Se recomienda la solución LDAP?
- ¿Tiene alguna sugerencia sobre productos de código abierto para LDAP de Apache? ¿Hay alguna buena / fácil gestión? ¿Alguna interfaz posible para la manipulación de funciones a grupos? - ¿LDAP permite la asignación a un nivel de funciones / métodos de grano fino a grupos o es algo que se realiza en la aplicación? Esta parte en particular es confusa. Si alguien puede ofrecer un buen recurso sobre esto, sería bueno.