2008-09-22 5 views

ответ

11

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

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

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

+1

Robert: Этот ответ настолько стар, что лучше не следовать его совету, даже если ссылки все еще работают – dcousineau 2015-10-01 17:11:34

1

phpgacl http://phpgacl.sourceforge.net/ является общей основой

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

0

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

29

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

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

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

+0

jframework rbac then? – AbiusX 2013-02-15 19:03:59

+0

У меня также есть мнение, что неправильный ответ принят для этого вопроса .. ACL и RBAC сильно различаются, и решение ACL принимается на вопрос о RBAC .. – 2014-08-13 11:37:02

+0

Педантизм: «Я бы не рекомендовал использовать их для ролевых аутентификация." контроль доступа! = аутентификация И да, что более важно ACL! = RBAC^_^ – 2015-04-09 19:10:57

0

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

0

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

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

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

0

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

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

Имеет зависимость от DBF-файла jFramework, но вы можете просто заменить DBAL SQL-запросы в коде своим желаемым DBAL и, конечно же, вы можете использовать jFramework в SOP-манере.

2

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

-1

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

0

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

PHP-RBAC является PHP Иерархическая NIST Уровень 2 Стандартный Role Based Access Control и довольно зрелый. Это также проект OWASP.

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

1

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

Смежные вопросы