2011-12-21 4 views
3

Я рассматриваю возможность использования Pyramid для создания веб-приложения среднего размера. Мне нужно было бы реализовать RBAC. Какой был бы лучший выбор? Можно ли использовать компоненты Zope?Управление доступом на основе ролей с помощью Pyramid

+0

Моя цель при внедрении RBAC в приложении состоит в том, чтобы иметь возможность делегировать пользователю некоторую власть, а это означает, что пользователь может разрешить другому пользователю выполнять любое действие. Rbac также позволяет иерархию роли, которая является очень мощной концепцией. Я не нашел ни одного модуля python, который мог бы помочь ... – gpasse

ответ

2

Well Pyramid реализует политику авторизации ACL, которая отображает принципы разрешений.

  1. Принципалы могут быть сконфигурированы вами для обозначения того, что вам нравится, и получены из самого запроса (пользователя).
  2. Разрешение - это строка, прикрепленная к индивидуальному виду или «операции».

Возможно, я ошибаюсь, но RBAC, похоже, вполне естественным образом вписывается в эту идею. Я понимаю, что RBAC имеет тенденцию быть скорее глобальной политикой, тогда как ACL обычно являются контекстуальными и, таким образом, привязаны к данным. На самом деле это не проблема, и зависит от того, как вы планируете структурировать остальную часть вашего приложения.

Вы также можете довольно просто реализовать свои собственные RBACAuthorizationPolicy. В Pyramid будут переданы принципы и разрешение, и оттуда вы можете запросить сопоставления доступа, чтобы определить, следует ли возвращать значение Allowed или Denied для этого пользователя.

+0

Я нашел python acl, который включает в себя роли. https://github.com/limscoder/Python-ACL/ и https://github.com/kyleterry/simpleacl-py – gpasse

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