Please enable JavaScript.
Coggle requires JavaScript to display documents.
Sicurezza e Autenticazione nelle API REST - Coggle Diagram
Sicurezza e Autenticazione nelle API REST
Autenticazione stateless
Struttura
: diviso in 3 parti
Paylod: contiene i dati sensibili dell'utente, detti "
claims
"
Signature: firma di controllo per la verifica e sicurezza
Header: come il server deve leggere e verificare il token
Vantaggio nei microservizi: stateless, dove il server deve solo verificare la firma e non salvare informazioni in memoria
Cos'è: Json web Token compatto e sicuro per il passaggio di informazioni
Flusso di autenticazione
Login: il cliente invia le proprie credenziali alla post
Richieste successive: Il client inserisce il token nell'Header HTTP ad ogni chiamata
Generazione: il server valida le credenziali restituendo il Jwt firmato
Sintassi Header: Il client inserisce questo codice all'interno dell'Header HTTP di ogni successiva chiamata
5.Sicurezza dati e password
Mai salvare la password nel database
Funzionamento: Cifratura unidirezionale con salt automatico per il contrasto di attacchi brut force
Algoritmo di hashing: Uso di BCryptPasswordEncoder
Autorizzazione e protezione risorse
Annotazioni nel Codice: Uso di
**@PreAuthorize
** sopra i metodi del Controller per bloccare gli utenti non autorizzati
Controllo Accessi: Configurazione della SecurityFilterChain per definire quali endpoint sono pubblici
Gestione Ruoli: Assegnazione di permessi specifici (es. ROLE_USER, ROLE_ADMIN
Implementazione in spring boot
Security Context: Se il token è valido, l'utente viene inserito nel contesto di sicurezza di Spring
Framework: utilizzo di spring security
Filtro Personalizzato: Creazione di un filtro personale per intercettare ed estrarre il token da ogni richiesta
Validazione: Il filtro controlla la firma del token con una secret key