Autorizzazione utente con microservizi

10

I microservizi dovrebbero essere responsabili della gestione della propria autorizzazione o ritenete sia preferibile disporre di un servizio di autorizzazione separato condiviso da tutti o da un sottoinsieme (all'interno dello stesso dominio aziendale) dei microservizi?

Per me, quest'ultimo ha più senso in quanto rende più semplice l'applicazione delle modifiche, l'applicazione delle politiche; È ASCIUTATO ecc. Tuttavia può facilmente sfuggire di mano in mano da tutti i tipi di servizi che scaricano le proprie regole in un unico posto e anche preoccupato per il sovraccarico della rete.

Qualche idea?

    
posta morcmarc 09.06.2015 - 12:45
fonte

2 risposte

7

Utilizzerei un sistema di autenticazione centralizzato e unificato e avrò permessi / statistiche separati per ogni microservice (un po 'come se non potessi ancora upvotare su questo sito di scambio di stack ma posso nello stack overflow mentre uso l'autenticazione centralizzata dello stack exchange sistema). Uno dei miei progetti attuali coinvolgerà questo approccio nel prossimo futuro, che sarà bello; il precedente lavoro di sviluppo prevedeva la creazione di un sistema conforme HIPPA, che richiedeva un secondo livello di autorizzazione / autenticazione, ed è un dispendio di tempo in termini di autorizzazioni daisy chain da componenti legalmente separate ma funzionalmente inseparabili del sistema. Il processo di debug coinvolge molto meno gioia rispetto a un semplice login oauth o api con intestazioni appid e x-auth.

Quale da usare dipende dai requisiti specifici di una roadmap di sviluppo, ma sceglierei l'approccio più semplice dove possibile per evitare un sovraccarico eccessivo e tempi / sforzi di sviluppo.

    
risposta data 09.06.2015 - 13:22
fonte
3

Each microservice should not have to do its own authentication, but it does need to do its own authorization.

Source

E questo ha perfettamente senso. Presumo che non ci siano dubbi sull'autenticazione centrale. Ma l'autorizzazione è piuttosto confusa.

Considerando che il numero di micro-servizi può crescere fino a centinaia, migliaia, un servizio di autorizzazione centrale dovrebbe essere responsabile solo delle autorizzazioni per l'elenco, ma non per la convalida di tali autorizzazioni. Il microservizio individuale potrebbe dover approcciarsi in modo diverso per convalidare l'autorizzazione.

Questo servizio di autorizzazione centralizzata, potrebbe aver bisogno di ottenere modelli da servizi diversi, e avvicinarsi in modo diverso per prendere decisioni, potrebbe sembrare facile e carino all'inizio. Ma potrebbe essere il caos più tardi.

    
risposta data 08.07.2016 - 13:37
fonte

Leggi altre domande sui tag