Я створюю новий веб-сервіс RESTful і мені потрібно надати модель управління доступом на основі ролей . Мені потрібно створити архітектуру, яка дозволить користувачам надати своє ім’я користувача та пароль, щоб отримати доступ до служб, а потім обмежити, як вони можуть користуватися послугами (які сервіси вони можуть використовувати, читати проти читання / запису тощо) на основі ролей призначений цим користувачам.
Я переглянув інші питання і знайшов шматочки того, що хочу. Наприклад, є кілька чудових дискусій про те, як обробляти передачу облікових даних на послуги REST з спокійною автентифікацією , найкращими методами . Також є кілька чудових покажчиків того, що програмісти повинні знати під час створення веб-сайтів ( що повинен знати кожен розробник, перш ніж створювати загальнодоступний веб-сайт ).
Але мені не вдалося знайти хороший пост, статтю, книгу про кращі практики та шаблони для архітектури програмного забезпечення, яка реалізує ці рішення.
Конкретно:
- Як слід зберігати дані користувачів та права доступу? (модель даних, місцезнаходження, формат)
- Які хороші шаблони дизайну для представлення та відстеження їх на сервері? (сеанси в пам'яті, пошук кожного разу, тощо)
- Які хороші зразки для безпечного відображення цих прав на сервіси в кодовій базі?
- Які архітектурні варіанти можуть допомогти зберегти систему більш безпечною та надійною?
- Які уроки люди отримують з окопів?
Я шукаю - це моделі дизайну та рекомендації щодо архітектури програмного забезпечення поза будь-якими конкретними технологіями.
(Якщо технології мають значення, я планую реалізувати це за допомогою python, скрученої та бази даних postgresql)