Sfondo:
Ci sono tre diverse applicazioni A
, B
e C
e condividono tutti gli stessi dettagli utente, ma ho dovuto implementare l'autenticazione in ciascuno di essi che era duplicazione degli sforzi.
Dopo alcune ricerche ho deciso di passare al servizio di micro-service e ho implementato un servizio di autenticazione. Il servizio memorizza il secret
per ogni app e prepara un token JWT quando l'utente tenta di accedere all'app specificata. Funziona bene come previsto.
attuale:
Ora è necessario disporre di ruoli e autorizzazioni per ogni applicazione e trovo un modo per implementarlo senza creare molto accoppiamento. Ho alcune domande riguardanti le mie attuali situazioni:
Domande:
- Devo aggiungere login di autorizzazione nello stesso servizio o creare un altro servizio con
roles
epermission
tabelle in esso. -
Il risultato finale sarà l'invio di un token
JWT
che conterrà payload che definisce i dettagli e l'autorizzazione dell'utente, ad esempio:{ uid: 1, name: '...', email: '...' permissions: [{ 'edit': ['post', 'user'], 'delete': ['post'], 'read': ['post', 'user'], ... }] }
Sulla carta questa struttura mi sembra buona. Risparmierà le chiamate di rete aggiuntive dal lato client. Ma è abbastanza sicuro e affidabile?
PS: non ho abbastanza esperienza nella creazione di applicazioni reali, ma spero di andare nella giusta direzione.