Я настраиваю новый веб-сервис RESTful и мне нужно предоставить модель управления доступом на основе ролей . Мне нужно создать архитектуру, которая позволит пользователям предоставлять свое имя пользователя и пароль для получения доступа к сервисам, а затем ограничивать использование ими сервисов (какие сервисы они могут использовать, чтение против чтения / записи и т. Д.) В зависимости от ролей. назначен этим пользователям.
Я посмотрел вокруг на другие вопросы и нашел кусочки того, что я хочу. Например, есть несколько хороших обсуждений о том, как обрабатывать передачу учетных данных службам REST restful-аутентификации , лучшие практики . Есть также несколько хороших указателей на то, что программисты должны знать при создании веб-сайтов ( что должен знать каждый разработчик перед созданием общедоступного веб-сайта ).
Но мне не удалось найти хорошую статью, статью, книгу о передовых практиках и шаблонах для программной архитектуры, которая реализует эти решения.
В частности:
- Как хранить данные пользователя и права доступа? (модель данных, местоположение, формат)
- Каковы хорошие шаблоны проектирования для представления и отслеживания их на сервере? (сессии в памяти, поиск в БД каждый раз и т. д.)
- Каковы хорошие шаблоны для безопасного сопоставления этих прав с сервисами в базе кода?
- Какие архитектурные решения могут помочь сделать систему более безопасной и надежной?
- Какие уроки извлекли люди из окопов?
Я ищу шаблоны проектирования и рекомендации для архитектуры программного обеспечения вне каких-либо конкретных технологий.
(Если технологии имеют значение, я планирую реализовать это, используя python, twisted и базу данных postgresql)