Architettura dei microservizi: utilizzo del server di autenticazione come server di risorse utente

6

Sto progettando un'applicazione basata sull'architettura dei microservizi,

In questa applicazione avrò bisogno di Auth microservice,

Inoltre, dovrò memorizzare alcune informazioni utente aggiuntive come, forse, più indirizzi, immagine avatar ecc.

Questo porta all'idea di avere due microservices: uno per Auth e un altro, User, che potrebbe memorizzare informazioni extra dell'utente,

Finora ho le seguenti idee:

  1. Permetti al servizio di autenticazione di essere anche un server di risorse in grado di contenere informazioni utente, inclusi indirizzi aggiuntivi, forse un avatar, ecc. Questa è una soluzione conveniente perché consente di avere tutto ciò che riguarda l'utente in un unico posto e riduce la complessità per operazioni come la registrazione di un nuovo utente, cancellazione dell'utente. Tuttavia, questa soluzione sembra contraddire il concetto di microservizi, ma per me questa soluzione è la più attraente

  2. Avere due diversi microservizi: Auth e User. L'autenticazione sarebbe responsabile solo per la gestione dei token e non memorizzerà alcun dato relativo all'utente. Quindi, quando viene ricevuta la richiesta di un token, il servizio Auth chiama User per ricevere i dati dell'utente e prendere una decisione

  3. Avere due diversi microservizi: Auth e User. L'Auth sarebbe responsabile della gestione dei token e memorizzerà anche una parte delle informazioni dell'utente correlate all'Autenticazione (forse password, ruoli). Il servizio utente conserverà tutte le altre informazioni come indirizzi aggiuntivi, avatar ecc. Questo approccio mi sembra troppo complesso perché richiede la cancellazione complessa dell'utente / crea nuove operazioni utente

Ora, dovrò scegliere una di queste soluzioni, ma sono perso e non sono sicuro quale di queste sia quella giusta,

Apprezzerà qualsiasi consiglio riguardo a questo,

Grazie

    
posta Andrey Yaskulsky 01.03.2018 - 12:28
fonte

1 risposta

5

3 è la risposta corretta.

Il tuo server di autenticazione autentica gli utenti, il tuo server degli utenti potrebbe essere meglio denominato 'UserProfiles'

Scoprirai che molti dei tuoi utenti saranno persone con profili, ma avrai anche utenti di servizi per altre API o forse semplici chiavi API, che usano anche il server di autenticazione per autenticare ma non hanno un profilo corrispondente.

Inoltre, probabilmente scoprirai che esistono molti server e framework Auth disponibili, ma UserProfile sarà personalizzato in base alle tue esigenze. Spesso è più semplice aggiungere un userid a un profilo personalizzato che integrare un profilo personalizzato con un DB di autenticazione premade

    
risposta data 01.03.2018 - 17:20
fonte

Leggi altre domande sui tag