TLTR: cosa è un buon modo per comunicare attraverso i servizi per l'autenticazione e l'User Informazioni indipendentemente dalla posizione del server o della tecnologia utilizzataCome dovresti gestire l'autenticazione e condividere le informazioni degli utenti su microservizi?
sto cercando di conoscere microservices e io sono un po 'poco chiaro come dovrei avvicinarmi all'accesso alle informazioni degli utenti e controllare l'accesso con più servizi. Per favore fatemi sapere se mi sto avvicinando a questo completamente sbagliato.
Ad esempio, ho un servizio di base per le operazioni di Blog CRUD e un servizio per il caricamento e la memorizzazione di immagini e video. Non ho ancora fatto nulla con l'autorizzazione o gli utenti (tranne che nel mio blog ObjectID per i miei autori, commentatori, ecc.)
Voglio mantenere questo come separato possibile (per scopi di apprendimento più di qualsiasi altra cosa) e mentre al momento sto costruendo tutto in Node.js spero di essere in grado di scambiare dentro e fuori tecnologie diverse come nginx, un servizio java/go/python o un altro storage (attualmente mongo, ma vorrei poter passare a sql come opzione)
Come attualmente sono strutturati, ho entrambi i servizi creati come app Express.js e attualmente sto usando node-http-proxy per proxy ai servizi espressi (questo è solo per salvare con la configurazione di nginx per ora ma io non voglio neanche dipendere da nginx).
Come devo affrontare:
utente autenticato o alcuni dei percorsi (ad esempio, quando si crea un nuovo post o l'aggiornamento/eliminazione) e non quando ottiene l'intervento ad Read (alla fine mi piacerebbe incorporare anche i ruoli)
popolamento delle informazioni utente es. dal ID dell'utente memorizzati nel blog dell'autore e la sua sostituzione con le informazioni utente (in una singola applicazione ho potuto solo usare mangusta popolano
L'obiettivo principale è che vorrei mantenere l'Auth e degli utenti nei servizi separati che potrebbe essere chiamato in qualsiasi altro servizio e memorizzato in un altro DB, ad esempio se si trovavano su server fisici diversi.
qualcuno mi aveva suggerito che avrei potuto farlo utilizzando HTTP/S ma c'è un modo migliore per farlo e chiunque può indicarmi esempi di implementazione, Node.js sarebbe preferibile ma non essenziale
Questo Probabilmente richiede qualche registro di servizio ma sono un po 'perso su come sarebbe implementato
troppo ampia. "Single Sign On" è ciò che viene chiamato. Documentarsi. –
@ blakes-seven Non mi sembra troppo ampio. Sto facendo una domanda specifica, semplicemente non voglio una risposta specifica per la tecnologia (meno forse un esempio node.js). Inoltre, non credo che il single sign on sia necessariamente l'unico modo per farlo, o se sia sempre il diritto fosse farlo. Non voglio particolarmente scendere lungo il percorso sso se posso evitarlo. – jonnie
Troppo largo. Accetto l'uso del single sign on. Al mio attuale datore di lavoro usiamo CAS. Pur non essendo coinvolto nel mantenimento del server CAS principale, dispongo di servizi Web protetti da CAS. Tutto ciò che faccio, includo le librerie client CAS as.dependencies e aggiorno il file web.xml nel contenitore Servlet per filtrare tutto il traffico attraverso il filtro web CAS –