Sto configurando un nuovo servizio web RESTful e devo fornire un modello di controllo degli accessi basato sui ruoli . Devo creare un'architettura che consenta agli utenti di fornire il proprio nome utente e password per accedere ai servizi e quindi limitare il modo in cui possono utilizzare i servizi (quali servizi possono utilizzare, leggere o leggere / scrivere, ecc.) In base ai ruoli assegnato a tali utenti.
Ho dato un'occhiata ad altre domande e ho trovato pezzi di ciò che voglio. Ad esempio, ci sono molte ottime discussioni su come gestire le credenziali di passaggio ai servizi REST restful-authentication , best practice . Ci sono anche alcuni ottimi suggerimenti su ciò che i programmatori dovrebbero sapere quando creano siti web ( ciò che ogni sviluppatore dovrebbe conoscere prima di creare un sito Web pubblico ).
Ma non sono stato in grado di trovare un buon post, articolo, libro sulle migliori pratiche e modelli per l'architettura software che implementa queste soluzioni.
In particolare:
- In che modo devono essere archiviati i dettagli dell'utente e i diritti di accesso? (modello dati, posizione, formato)
- Quali sono i buoni schemi di progettazione per rappresentarli e rintracciarli nel server? (sessioni in memoria, ricerche db ogni volta, ecc.)
- Quali sono i buoni schemi per mappare questi diritti ai servizi in modo sicuro nella base di codice?
- Quali scelte architettoniche possono aiutare a mantenere il sistema più sicuro e affidabile?
- Quali lezioni apprese hanno le persone dalle trincee?
Sto cercando modelli di progettazione e raccomandazioni per l'architettura del software al di fuori di qualsiasi tecnologia specifica.
(Se le tecnologie sono importanti, ho intenzione di implementarlo usando python, twisted e un database postgresql)