Question

Existe-t-il un système de contrôle d'accès basé sur des rôles basé sur PHP et pouvant être utilisé avec CodeIgniter ?

Était-ce utile?

La solution

Brandon Savage a présenté son package PHP " ApplicationACL " qui peut ou non accomplir un accès basé sur les rôles. PHPGACL pourrait également fonctionner, mais je ne peux pas vous le dire.

Toutefois, je peux vous dire que le composant Zend_ACL de Zend Framework effectuera des configurations basées sur les rôles (toutefois, vous devrez sous-classer pour vérifier plusieurs rôles à la fois). Cela dit, vous devrez extraire Zend_ACL. Je ne crois pas qu'il ait des dépendances externes, à partir du téléchargement monolithique (ou du paiement SVN).

La bonne chose à propos de Zend_ACL est son agnostique de stockage. Vous pouvez le reconstruire à chaque fois ou bien il est conçu pour être sérialisé (j'utilise une combinaison des deux, sérialisation pour le cache et reconstruction à partir de la base de données).

Autres conseils

Je comprends peut-être mal la question, mais le contrôle d'accès basé sur les rôles (RBAC) ne vise-t-il pas à éviter d'éviter les listes de contrôle d'accès (ACL)?

  

RBAC diffère des listes de contrôle d'accès (ACL) (...) en ce qu'il attribue des autorisations à des opérations spécifiques ayant une signification dans l'organisation, plutôt que aux objets de données de bas niveau. Par exemple, une liste de contrôle d'accès peut être utilisée pour accorder ou refuser un accès en écriture à un fichier système particulier, mais elle n'indique pas de quelle manière ce fichier peut être modifié. Dans un système basé sur RBAC, une opération peut consister à créer une transaction de "compte de crédit" dans une application financière (...). L'attribution de l'autorisation d'effectuer une opération particulière est significative, car les opérations sont détaillées et ont elles-mêmes une signification dans l'application.   (Quote: Wikipedia )

Je ne connais pas les spécificités de Zend_ACL ni des autres implémentations mentionnées, mais si elles sont basées sur une liste de contrôle d'accès, je ne recommanderais pas de les utiliser pour une autorisation basée sur les rôles.

J'ai créé un projet Open Source intitulé PHP-Bouncer qui pourrait vous intéresser. . Il est encore assez jeune, mais fonctionne bien et est facile à configurer. J'ai fini par le développer car aucune des solutions existantes ne semblait répondre à mes besoins. J'espère que cela aide!

phpgacl http://phpgacl.sourceforge.net/ est un cadre de contrôle d'accès générique basé sur acl

Bien que je ne connaisse aucune implémentation spécifique de CI, je sais que vous avez uniquement besoin du fichier de classe principal pour que phpgacl fonctionne. Je pense donc que l’intégration avec CI ne sera pas un problème. (J'ai déjà travaillé avec CI)

Voici deux bibliothèques RBAC pour PHP que j'ai trouvées:

J'ai en fait utilisé le premier dans PolyAuth: https://github.com/Polycademy/PolyAuth/

Il s'agit d'une bibliothèque d'authentification complète comprenant le contrôle d'accès basé sur le niveau 1 du NIST. Et oui, RBAC n'est pas la même chose qu'une ACL. J'utilise aussi Codeigniter, tout ce que vous avez à faire est d'utiliser le pilote PDO et de transmettre l'identifiant de connexion. Consultez ce didacticiel pour savoir comment procéder: http://codebyjeff.com/blog/ 2013/03 / codeigniter-with-pdo

J'ai découvert Khaos ACL, une librairie CI ... Je vérifie également phpgacl et comment l'utiliser pour CI ... Je n'ai pas encore vérifié Zend ACL. Mais peut-être peut-il être "porté" vers CI

Essayez le plugin DX_Auth pour CodeIgniter. Je travaille sur un super-ensemble similaire aux fonctions de DX_Auth. Mon ensemble d’addons de CI comprend l’affichage de menus (pouvant être contrôlés via CSS), le contrôle d’accès aux bases de rôles avant l’appel du contrôleur et d’autres fonctionnalités. J'espère le publier bientôt. Donnera l'URL du projet quand je le ferai

RBAC! = ACL - Roland a la seule réponse correcte à cette question.

BTW est bien sûr un élément essentiel d’un cadre pour la mise en œuvre de tout type de système d’autorisation. Du moins, il est inutile d’utiliser un cadre, s’il ne vous donne pas un système RBAC bien conçu - il serait peut-être préférable d’utiliser un système de modèle simple avec n'importe quelle couche ORM, puis.

C’est un anti-modèle commun dans le monde php, que des frameworks comme Ruby ou Django soient "clonés". En tant que sous-ensemble de ce que ces frameworks modernes fournissent - en tant que syndrome typique, vous constatez un manque d'intégration du ACL ou du RBAC dans ces frameworks - ce qui est essentiellement une blague. Il n’existe actuellement que le framework PHP Yii qui accompagne une implémentation RBAC décente.

Je sais que le sentier est froid, mais un nouveau projet est apparu:

PHP-RBAC est un contrôle d’accès basé sur les rôles standard du niveau 2 du NIST PHP et est assez mature. C’est aussi un projet OWASP.

J'espère que vous l'apprécierez à http://phprbac.net

http://www.jframework.info (lien mort)

jFramework possède un contrôle d'accès basé sur le niveau 2 NIST standard avec des améliorations, qui sont considérées comme les plus rapides disponibles (y compris les points de repère). Il peut fonctionner sur un seul fichier de base de données SQLite. Il est testé de manière approfondie et fonctionne comme un gant.

Dépend de jFramework DBAL mais vous pouvez simplement remplacer les requêtes SQL DBAL dans le code par le DBAL souhaité et vous pouvez bien sûr utiliser jFramework de manière SOP.

Ion Auth Library utilise des utilisateurs et des groupes - https://github.com/benedmunds/CodeIgniter- Ion-Auth mais il n'y a pas de système RBAC qui fonctionne pour les utiliser et les gérer. Mais vous pouvez blanchir vos fonctions.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top