Panoramica su Autenticazione e Autorizzazione
Meccanismo di Autenticazione
I servizi BeTalent si basano su Amazon Cognito per autenticazione e autorizzazione. Sono supportati diversi flussi di autenticazione a seconda che la richiesta provenga da un utente finale tramite un partner (B2BC) o da un servizio backend (B2B).
1. Autenticazione B2BC (Business-to-Business-to-Consumer)
- Registrazione e Login dell'Utente Finale
- Gli utenti finali si autenticano tramite i portali partner o direttamente tramite la nostra interfaccia web sicura, usando identity provider federati oppure credenziali email/password standard.
- Dopo un login riuscito, AWS Cognito rilascia un JWT (JSON Web Token) per le richieste API successive.
- Identity Provider Federati (SSO Partner)
- Supportiamo l'integrazione con Identity Provider esterni (SSO) tramite protocolli OAuth 2.0 o SAML, tutti gestiti tramite AWS Cognito.
- Questo permette agli utenti gestiti dal partner di accedere a BeTalent senza creare account separati.
- Vedi la guida ufficiale AWS Cognito SAML per i dettagli.
- Rilascio e Utilizzo del Token
- Dopo l'autenticazione, Cognito restituisce un access token e un ID token in formato JWT.
- Includi l'access token nell'header
Authorizationdi ogni chiamata API per autenticare la richiesta.
- Ciclo di Vita di Sessione e Token
- Cognito gestisce la scadenza e il refresh dei token tramite refresh token.
- Gli access token sono validi per 8 ore; riutilizzali entro quella finestra per minimizzare le ri-autenticazioni.
- Quando un access token scade, usa il refresh token per ottenerne uno nuovo, oppure ri-autenticati se necessario.
2. Autenticazione B2B (Machine-to-Machine)
L'autenticazione Machine-to-Machine (M2M) viene usata dai servizi backend che richiedono un accesso automatizzato e non presidiato:
- Client Credentials
- I servizi si autenticano con client ID e client secret pre-provisionati, rilasciati dagli amministratori della piattaforma.
- Generazione del JWT
- Dopo un'autenticazione riuscita, Cognito rilascia un JWT, che deve essere inviato nell'header
Authorizationdi tutte le richieste API.
- Permessi Scoped
- Accesso e permessi per i client B2B sono governati da ruoli e scope assegnati all'interno di Cognito e del nostro sistema RBAC.
Meccanismo di Autorizzazione
L'autorizzazione viene applicata tramite Role-Based Access Control (RBAC). Ruoli e permessi risiedono esternamente; fai riferimento alla sezione SSO & RBAC per i dettagli.
Multi-Tenancy e Gestione dei Tenant
BeTalent supporta contesti sia single-tenant sia multi-tenant:
- Ogni organizzazione ha un
tenantIdunivoco (UUID) che isola dati e permessi. - Le operazioni API richiedono tipicamente il parametro
tenantIdper garantire un corretto controllo degli accessi.
Best Practice di Sicurezza
- Minimo Privilegio: concedi solo i permessi necessari per ciascun ruolo.
- Trasporto Sicuro: usa sempre HTTPS per le chiamate API per proteggere token e dati in transito.
- Gestione dei Token: rinnova i token prima della scadenza; evita ri-autenticazioni frequenti.
- Policy di Sessione: definisci timeout chiari e processi di revoca per le sessioni inattive.
Conclusione
Il sistema di autenticazione e autorizzazione di BeTalent, basato su AWS Cognito, offre un controllo degli accessi sicuro e scalabile. Supporta scenari di autenticazione sia B2BC (flussi utente mediati da partner) sia B2B (machine-to-machine), con un solido RBAC e isolamento multi-tenant.