Sto esplorando l'architettura orientata ai servizi di base e mi chiedo come gestire al meglio l'autenticazione utente in tutti i servizi.Architettura centralizzata di autenticazione in servizio
Come un esempio molto semplice, supponiamo di avere un'applicazione blog che chiama ad altri due servizi:
- Un servizio di utente/autenticazione per la memorizzazione dei dati degli utenti e lo scambio di credenziali per un token di accesso
- A post servizio per la gestione dei dati postali
Supponiamo che un utente dell'applicazione stia tentando di eliminare un determinato post e che solo gli utenti con un ruolo di "amministratore" possano farlo.
Le seguenti richieste dovrebbero essere fatte:
app -> auth
autenticare l'utente corrente (attraverso una sorta di token). Se il token è scaduto l'applicazione potrebbe reindirizzare l'utente a un form di login, ecc
app -> Messaggi
cancellare il post.
messaggi -> auth
Prima di un post viene cancellato, il servizio postale ha bisogno per assicurarsi che l'utente richiedente ha il permesso di farlo. Autentica l'utente corrente (tramite token) e assicurati che abbia il ruolo di "admin".
Questo è un esempio troppo semplice, ma sono curioso di sapere come le persone si occupano di auth in tutti i loro servizi. Sembra probabile che ogni servizio debba effettuare una chiamata separata al servizio di autenticazione per autorizzare la richiesta. È questo il caso? Ci sono modi migliori per gestire l'autenticazione in questo tipo di SOA?
Grazie!
Stai suggerendo che il token stesso includa i ruoli di un utente? – scttnlsn
Tutto dipende dai tuoi requisiti di sicurezza. se per la durata del token puoi vivere senza gestire una revoca dell'autorizzazione, puoi usarla. Nei casi in cui non ti puoi permettere devi autorizzare su ogni richiesta. Si noti che se il provider di identità e i servizi che lo utilizzano vengono distribuiti sugli stessi server, il sovraccarico può essere ragionevole. per esempio. agente di politica in OpenAM https://wikis.forgerock.org/confluence/display/openam/Authentication+and+Authorization+Overview –
Buono a sapersi ... grazie! – scttnlsn