Microservice su Microservice Auth

11

Stiamo pianificando una nuova architettura che utilizzi un backend di molti microservizi diversi che dovranno comunicare tra loro e richieste di campi da sistemi che non fanno parte del servizio. Nell'ultima parte non sto parlando di clienti esterni, sto solo parlando di sistemi all'interno della nostra rete, ma che non fanno parte di questa architettura di microservizi.

Qual è il modo migliore per gestire l'autenticazione / l'autorizzazione per quei servizi che parlano tra loro? Di solito vedo Oauth come la soluzione per Microservices, ma che tende ad essere quando si parla di clienti esterni che utilizzano il servizio. Lo stesso vale per i microservizi che parlano tra loro?

    
posta Myelin 05.01.2016 - 15:57
fonte

2 risposte

3

OAuth 2 la concessione di credenziali client è progettata per le comunicazioni tra i servizi. L'autenticazione per la concessione di credenziali client prevede in genere il passaggio di un segreto condiviso, anziché un login / password. Il segreto condiviso viene utilizzato per soddisfare i requisiti RFC di un "client riservato" per la concessione di credenziali client.

Se non hai ancora in mente un server di autenticazione, ti suggerisco di dare un'occhiata al Keycloak , almeno per una dimostrazione di concetto: è un'offerta open source di RedHat. Utilizza Open ID Connect (OIDC), che è un'estensione di OAuth 2 (aggiunge un livello ID). documentazione dell'amministratore del server sugli account di servizio per i dettagli.

    
risposta data 19.05.2016 - 07:56
fonte
0

Ho lavorato su un caso simile. Ho implementato OAuth2 seguendo RFC-6749

Poiché volevo disporre di un microservizio di autorizzazione, questo gestiva solo le operazioni relative all'autenticazione e funziona all'esterno e all'interno della rete.

Le API in questo servizio sono abbastanza generiche da gestire tutto il necessario per OAuth2. Ti consiglio di seguire il flusso nella sezione "1.2. Flusso del protocollo" per RFC-6749 e ciò dovrebbe aiutarti a progettare i tuoi servizi in modo tale che le responsabilità siano uniche per ogni servizio, che è ciò che desideri veramente ottenere lavorando con i micro-servizi.

    
risposta data 13.01.2016 - 12:12
fonte

Leggi altre domande sui tag