Подтвердить что ты не робот

Контроль доступа на основе ролей

Существует ли система контроля доступа с открытым исходным кодом, PHP based, на основе ролей, которая может использоваться для CodeIgniter?

4b9b3361

Ответ 1

Брэндон Сэвидж выступил с презентацией о своем пакете PHP ApplicationACL, который может или не может выполнять ролевой доступ. PHPGACL может работать, но я не могу сказать вам точно.

Однако я могу вам сказать, что компонент Zend_ACL в Zend Framework будет выполнять установки на основе ролей (однако у вас будет к подклассу для проверки сразу нескольких ролей). Конечно, боль в этом случае вам придется вытащить Zend_ACL, я не верю, что у нее есть какие-либо внешние зависимости, от монолитной загрузки (или проверки SVN).

Самое приятное в Zend_ACL - это его агностик. Вы можете либо перестроить его каждый раз, либо спроектировать для сериализации (я использую комбинацию обоих, сериализую для кеша и перестраиваю из БД).

Ответ 2

Возможно, я не понимаю этот вопрос, но не все ли суть управления доступом на основе ролей (RBAC), чтобы избежать списков контроля доступа (ACL)?

RBAC отличается от списков управления доступом (ACL) (...) тем, что он назначает разрешения для определенных операций со значением в организации, а не для объектов данных низкого уровня. Например, список управления доступом может использоваться для предоставления или запрета доступа к записи для определенного системного файла, но он не сказал бы, каким образом этот файл может быть изменен. В системе на основе RBAC операция может заключаться в создании транзакции "кредитного счета" в финансовом приложении (...). Назначение разрешения для выполнения конкретной операции имеет смысл, поскольку операции мелкозернистые и сами имеют смысл в приложении. (Цитата: Wikipedia)

Я не знаю специфики Zend_ACL или других упомянутых реализаций, но если они основаны на ACL, я бы не рекомендовал их использовать для авторизации на основе ролей.

Ответ 3

Я создал проект с открытым исходным кодом под названием PHP-Bouncer, который может вас заинтересовать. Он еще довольно молод, но работает хорошо и легко настраивается. Я закончил его разработку, потому что ни одно из существующих решений, похоже, не отвечало моим потребностям. Надеюсь, это поможет!

Ответ 4

phpgacl http://phpgacl.sourceforge.net/ - это общая инфраструктура управления доступом на основе acl

пока я не знаю о какой-либо конкретной реализации CI, я знаю, что вам нужен только основной файл класса, чтобы сделать работу phpgacl. Поэтому я считаю, что интеграция с CI не будет проблемой. (Я работаю с CI)

Ответ 5

Вот две библиотеки 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

Ответ 6

Узнал о Khaos ACL, который является библиотекой CI... Я также проверяю phpgacl и как его использовать для CI... Еще не проверял Zend ACL. Но, возможно, он может быть "портирован" на CI

Ответ 7

Попробуйте плагин DX_Auth для CodeIgniter. Я работаю над подобным (скорее, надмножеством) функций, которые имеют DX_Auth. Мой набор CI addon включает отображение меню (которое можно контролировать с помощью CSS), контроль доступа к ролям, прежде чем запускается контроллер, и другие функции. Я надеюсь опубликовать его в ближайшее время. Будет указывать URL проекта, когда я это сделаю

Ответ 8

RBAC!= ACL. У Roland есть единственный правильный ответ на этот вопрос.

Кстати, это важная часть структуры для реализации любой системы разрешений - по крайней мере, нет смысла использовать фреймворк, если он не дает вам хорошо спроектированной системы RBAC - лучше было бы использовать простая система шаблонов с любым уровнем ORM.

Это общий антипаттерн в мире php, что такие рамки, как Ruby или Django, "клонируются" только как подмножество того, что предоставляют эти современные рамки - как типичный синдром yuo видят отсутствие хорошей интеграции ACL или RBAC в эти рамки - что по сути является шуткой. В настоящее время существует только Yii PHP Framework, которая поставляется с достойной реализацией RBAC.

Ответ 9

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

jFramework имеет стандартный RBAC уровня 2 уровня 2 с улучшенными характеристиками, который считается самым быстрым (включая эталонные тесты), он может работать с одним файлом базы данных SQLite и тщательно протестирован, работает как перчатка.

Имеет зависимость от jFramework DBAL, но вы можете просто заменить DBAL SQL Queries в коде вашим желаемым DBAL и, конечно же, вы можете использовать jFramework с помощью SOP.

Ответ 10

Я знаю, что тропа холодная, но появился новый проект:

PHP-RBAC является иерархическим стандартом NIST уровня 2 стандартного управления доступом на основе NIST и довольно зрелым. Это также проект OWASP.

Надеюсь, вам понравится это на http://phprbac.net

Ответ 11

Ion Auth Library использует пользователей и группы - https://github.com/benedmunds/CodeIgniter-Ion-Auth но нет никакой системы RBAC для их использования и управления. Но вы можете белыми вашими функциями.