Есть ли какая-либо система с открытым исходным кодом на PHP based
на ролях, которая может использоваться для CodeIgniter
?
Брэндон Сэвидж выступил с презентацией о своем пакете PHP « ApplicationACL », который может или не может выполнять ролевой доступ. PHPGACL может работать, но я не могу сказать вам точно.
Однако я могу сказать вам, что компонент Zend_ACL Zend Framework будет выполнять установки на основе ролей (однако вам придется подклассом проверять сразу несколько ролей). Конечно, боль из этого вам придется вытащить Zend_ACL, я не верю, что он имеет какие-либо внешние зависимости, от монолитной загрузки (или проверки SVN).
Хорошая вещь о Zend_ACL – это не агностик для хранения. Вы можете либо перестраивать его каждый раз, либо он предназначен для сериализации (я использую комбинацию как сериализации для кеша, так и восстановления из БД).
Возможно, я не понимаю этот вопрос, но не все ли суть контроля доступа на основе ролей (RBAC), чтобы избежать списков контроля доступа (ACL)?
RBAC отличается от списков управления доступом (ACL) (…) тем, что он назначает разрешения для определенных операций со значением в организации, а не для объектов данных низкого уровня. Например, список управления доступом может использоваться для предоставления или запрета доступа к записи для определенного системного файла, но он не сказал бы, каким образом этот файл может быть изменен. В системе на основе RBAC операция может заключаться в создании транзакции «кредитного счета» в финансовом приложении (…). Назначение разрешения для выполнения конкретной операции имеет смысл, поскольку операции мелкозернистые и сами имеют смысл в приложении. (Цитата: Википедия )
Я не знаю специфики Zend_ACL или других упомянутых реализаций, но если они основаны на ACL, я бы не рекомендовал их использовать для авторизации на основе ролей.
Я создал проект с открытым исходным кодом под названием PHP-Bouncer, который может вас заинтересовать. Он еще довольно молод, но работает хорошо и легко настраивается. Я закончил его разработку, потому что ни одно из существующих решений, похоже, не отвечало моим потребностям. Надеюсь, это поможет!
phpgacl http://phpgacl.sourceforge.net/ – это общая система контроля доступа на основе acl
в то время как я не знаю о какой-либо конкретной реализации CI, я знаю, что вам нужен только основной файл класса для работы phpgacl. Поэтому я считаю, что интеграция с CI не будет проблемой. (Я работаю с CI)
Вот две библиотеки RBAC для PHP, которые я нашел:
Я фактически использовал первый в PolyAuth: https://github.com/Polycademy/PolyAuth/
Это полнофункциональная библиотека auth, которая включает в себя NIB уровня 1 RBAC. И да, RBAC – это не то же самое, что ACL. Я также использую Codeigniter, все, что вам нужно сделать, это использовать драйвер PDO и передать идентификатор соединения. См. Этот учебник, как это сделать: http://codebyjeff.com/blog/2013/03/codeigniter-with-pdo
Узнал о Khaos ACL, который является библиотекой CI … Я также проверяю phpgacl и как использовать его для CI … Не проверял Zend ACL еще. Но, возможно, его можно «портировать» на CI
Попробуйте плагин DX_Auth для CodeIgniter. Я работаю над подобным (скорее, надмножеством) функций, которые имеют DX_Auth. Мой набор добавлений CI включает отображение меню (которое можно контролировать с помощью CSS), контроль доступа по ролям до запуска контроллера и другие функции. Я надеюсь опубликовать его в ближайшее время. Будет указывать URL проекта, когда я это сделаю
RBAC! = ACL. У Roland есть единственный правильный ответ на этот вопрос.
Кстати, это важная часть структуры для внедрения любой системы разрешений – по крайней мере, нет смысла использовать фреймворк, если он не дает вам хорошо спроектированной системы RBAC – лучше было бы использовать простой шаблон система с любым уровнем ORM.
Это общий антипаттерн в мире php, что такие рамки, как Ruby или Django, «клонируются» только как часть того, что обеспечивают эти современные рамки – как типичный синдром yuo видят отсутствие хорошей интеграции ACL или RBAC в эти рамки – что по сути, шутка. В настоящее время существует только Yii PHP Framework, которая поставляется с достойной реализацией RBAC.
Я знаю, что тропа холодная, но появился новый проект:
PHP-RBAC является иерархическим стандартом NIST уровня 2 стандартного управления доступом на основе стандартов и довольно зрелым. Это также проект OWASP.
Надеюсь, вам понравится это на http://phprbac.net
http://www.jframework.info (deadlink)
jFramework имеет стандартный RBAC стандарта 2 уровня NIST с усовершенствованиями, который, как говорят, является самым быстрым (включая эталонные тесты), он может работать с одним файлом базы данных SQLite и тщательно протестирован, работает как перчатка.
Имеет зависимость от jFramework DBAL, но вы можете просто заменить DBAL SQL Queries в коде с вашим желаемым DBAL и, конечно же, вы можете использовать jFramework в SOP.
Библиотека Ion Auth использует пользователей и группы – https://github.com/benedmunds/CodeIgniter-Ion-Auth, но нет никакой системы RBAC для их использования и управления. Но вы можете белыми вашими функциями.