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 loro nome utente e password per accedere ai servizi e quindi limitare il modo in cui possono utilizzare i servizi (quali servizi possono usare, leggere vs leggere / scrivere, ecc.) In base ai ruoli assegnato a quegli utenti.
Mi sono guardato intorno ad altre domande e ho trovato pezzi di ciò che voglio. Ad esempio, ci sono molte grandi discussioni su come gestire il passaggio delle credenziali ai servizi REST, l' autenticazione riposante , le migliori pratiche . Ci sono anche alcuni ottimi suggerimenti su ciò che i programmatori dovrebbero sapere durante la creazione di siti Web ( ciò che ogni sviluppatore dovrebbe sapere 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:
- Come devono essere archiviati i dettagli dell'utente e i diritti di accesso? (modello dati, posizione, formato)
- Quali sono i buoni modelli di progettazione per rappresentare e tracciare questi nel server? (sessioni in memoria, ricerche di db ogni volta, ecc.)
- Quali sono i buoni modelli per mappare questi diritti sui 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 software al di fuori di qualsiasi tecnologia specifica.
(Se le tecnologie contano, sto pianificando di implementarlo usando python, twisted e un database postgresql)