Я рассматриваю возможность использования Pyramid для создания веб-приложения среднего размера. Мне нужно было бы реализовать RBAC. Какой был бы лучший выбор? Можно ли использовать компоненты Zope?Управление доступом на основе ролей с помощью Pyramid
ответ
Well Pyramid реализует политику авторизации ACL, которая отображает принципы разрешений.
- Принципалы могут быть сконфигурированы вами для обозначения того, что вам нравится, и получены из самого запроса (пользователя).
- Разрешение - это строка, прикрепленная к индивидуальному виду или «операции».
Возможно, я ошибаюсь, но RBAC, похоже, вполне естественным образом вписывается в эту идею. Я понимаю, что RBAC имеет тенденцию быть скорее глобальной политикой, тогда как ACL обычно являются контекстуальными и, таким образом, привязаны к данным. На самом деле это не проблема, и зависит от того, как вы планируете структурировать остальную часть вашего приложения.
Вы также можете довольно просто реализовать свои собственные RBACAuthorizationPolicy
. В Pyramid будут переданы принципы и разрешение, и оттуда вы можете запросить сопоставления доступа, чтобы определить, следует ли возвращать значение Allowed
или Denied
для этого пользователя.
Я нашел python acl, который включает в себя роли. https://github.com/limscoder/Python-ACL/ и https://github.com/kyleterry/simpleacl-py – gpasse
Моя цель при внедрении RBAC в приложении состоит в том, чтобы иметь возможность делегировать пользователю некоторую власть, а это означает, что пользователь может разрешить другому пользователю выполнять любое действие. Rbac также позволяет иерархию роли, которая является очень мощной концепцией. Я не нашел ни одного модуля python, который мог бы помочь ... – gpasse