Microservizi e ruoli utente

4

Avere un approccio di tipo utente per micro-service?

Esempio:

Gli utenti nel contesto di gestione delle identità possono avere uno di tipi_utente predefiniti:

affiliate_user
b2b_user
accomodation_owner
agent
admin

Ma guardando dal punto di vista del contesto limitato al supporto, si preoccupa solo degli agenti (le persone che rispondono ai ticket) e degli end_users (persone che fanno domande).

Se l'utente appena creato all'interno dell'identità BC è accommodation_owner, verrà replicato per supportare bc come end_user, poiché può solo chiedere aiuto.

Questa pratica di progettazione è buona o cattiva? Che cosa succede se ho bisogno di elencare tutti gli agenti, quindi posso assegnare un ticket.

Devo interrogare il microservizio di identità per gli utenti con determinati user_type, o dovrei richiedere il supporto di microservice per elencarmi tutti gli utenti con type agent ( /api/support/agents )?

    
posta Robert 02.09.2016 - 09:46
fonte

1 risposta

3

Dalla tua spiegazione, comprendo che hai un microservizio per la gestione dell'identità dell'utente (account utente, accesso) e quello che chiami "tipo utente" negli altri microservizi corrisponde a un ruolo di autorizzazione (ovvero, che cosa può fare un utente di questo tipo fare nel microservizio).

Separare utente e autorizzazione e disporre dell'autorizzazione gestita in ogni microservizio sembra essere una buona architettura:

  • ogni microservizio potrebbe evolvere al proprio ritmo
  • non si crea una dipendenza non necessaria tra il servizio di identità utente e gli altri microservizi (se si manterrà un elenco globale di ruoli / autorizzazione si accoppiano i servizi)
  • potresti aggiungere nuovi microservizi senza doversi preoccupare degli altri.

Ovviamente, manterrai il beneficio dell'accoppiamento libero solo se mantieni le dipendenze al minimo indispensabile:

  • Ogni microservizio dovrebbe fornire una query su "tipi di utente". Naturalmente la loro replica nel servizio di identità renderebbe la query più semplice, ma eliminerebbe i benefici dei microservizi.
  • Anche la replica delle informazioni utente ai servizi di consumo dovrebbe essere ridotta al minimo: l'id utente dovrebbe essere sufficiente. Qualsiasi altra cosa dovrebbe essere interrogata dal servizio di identità dell'utente.

Ecco alcune letture aggiuntive:

risposta data 02.09.2016 - 20:09
fonte

Leggi altre domande sui tag