usuario sistemas privilegios perfiles matriz los informacion espaƱol ejemplo control basado acceso php codeigniter access-control

php - sistemas - Control de acceso basado en roles



roles de usuario en java (11)

¿Hay algún sistema de control de acceso basado en roles, PHP based , de código abierto que pueda usarse para CodeIgniter ?


Aquí hay dos bibliotecas de RBAC para PHP que encontré:

De hecho, utilicé el primero en PolyAuth: https://github.com/Polycademy/PolyAuth/

Es una biblioteca de autenticación con todas las funciones que incluye NIST nivel 1 RBAC. Y sí, RBAC no es lo mismo que un ACL. También uso Codeigniter, todo lo que tienes que hacer es usar el controlador PDO y pasar el ID de conexión. Consulte este tutorial sobre cómo hacerlo: http://codebyjeff.com/blog/2013/03/codeigniter-with-pdo


Brandon Savage hizo una presentación sobre su paquete PHP " ApplicationACL " que puede o no lograr el acceso basado en roles. PHPGACL podría funcionar también, pero no puedo decirte con seguridad.

Sin embargo, lo que puedo decirle es que el componente Zend_ACL de Zend Framework hará configuraciones basadas en roles (sin embargo, tendrá que crear una subclase para verificar múltiples roles al mismo tiempo). Concedido el dolor de esto es que tendrás que sacar Zend_ACL, no creo que tenga dependencias externas, de la descarga monolítica (o del pago de SVN).

Lo bueno de Zend_ACL es su agnóstico de almacenamiento. Puede reconstruirlo cada vez o está diseñado para ser serializado (utilizo una combinación de ambos, serializar para el caché y reconstruir desde el DB).


Creé un proyecto de código abierto llamado PHP-Bouncer que puede ser de su interés. Todavía es bastante joven, pero funciona bien y es fácil de configurar. Terminé desarrollándolo porque ninguna de las soluciones existentes parecía satisfacer mis necesidades. ¡Espero que esto ayude!



Me enteré de Khaos ACL que es una biblioteca de CI ... También estoy revisando phpgacl y cómo usarlo para CI ... Aún no he comprobado Zend ACL. Pero tal vez puede ser "portado" a CI


Pruebe el complemento DX_Auth para CodeIgniter. Estoy trabajando en un similar (más bien, superconjunto) de las funciones que tiene DX_Auth. Mi conjunto de complementos de CI incluye la visualización de menús (que se pueden controlar a través de CSS), el control de acceso a las bases de roles antes de invocar el controlador y otras funciones. Espero publicarlo pronto Daré la URL del proyecto cuando lo haga


RBAC! = ACL - Roland tiene la única respuesta correcta para esta pregunta.

Por cierto, es una parte esencial de un marco para implementar cualquier tipo de sistema de permisos: al menos no tiene sentido usar un marco, si no le da un sistema de RBAC bien diseñado, podría ser mejor usar una plantilla simple. sistema con cualquier capa de ORM entonces.

Es un antipatrón común en el mundo de php, que los frameworks como Ruby o Django son "clonados" solo como un subconjunto de lo que ofrecen estos frameworks modernos, como un síndrome típico que ve la falta de una buena integración ACL o RBAC en estos frameworks. esencialmente es una broma. Actualmente solo existe el Framework Yii PHP que viene con una implementación RBAC decente.


Sé que el camino está frío, pero ha aparecido un nuevo proyecto:

PHP-RBAC es un control de acceso basado en roles estándar jerárquico NIST de PHP 2 y es bastante maduro. También es un proyecto OWASP.

Espero que lo disfrutes en http://phprbac.net


Tal vez esté malinterpretando la pregunta, pero ¿no es el objetivo del control de acceso basado en roles (RBAC) evitar las listas de control de acceso (ACL)?

RBAC difiere de las listas de control de acceso (ACL) (...) en que asigna permisos a operaciones específicas con significado en la organización, en lugar de objetos de datos de bajo nivel. Por ejemplo, una lista de control de acceso podría usarse para otorgar o denegar el acceso de escritura a un archivo de sistema en particular, pero no diría de qué manera podría cambiarse ese archivo. En un sistema basado en RBAC, una operación podría ser crear una transacción de ''cuenta de crédito'' en una aplicación financiera (...). La asignación de permisos para realizar una operación en particular es significativa, porque las operaciones son de grano fino y tienen significado dentro de la aplicación. (Cita: Wikipedia )

No conozco los detalles sobre Zend_ACL o las otras implementaciones mencionadas, pero si están basadas en ACL, no recomendaría su uso para la autorización basada en roles.


phpgacl PHPGACL es un marco de control de acceso basado en acl genérico

aunque no conozco ninguna implementación específica de CI, sé que solo necesita el archivo de la clase principal para que Phpgacl funcione. Por lo tanto, creo que la integración con CI no será ningún problema. (He trabajado de manera pasajera con CI)


http://www.jframework.info (deadlink)

jFramework tiene un NIST nivel 2 RBAC con mejoras que se dice que es el más rápido disponible (incluye puntos de referencia) que puede operar en un solo archivo de base de datos SQLite y se prueba a fondo, funciona como un guante.

Tiene una dependencia en jFramework DBAL pero puede reemplazar consultas DBAL SQL en el código con su DBAL deseado y, por supuesto, puede usar jFramework de una manera SOP.