Passa al contenuto principale

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)

  1. 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.
  1. 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.
  1. 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 Authorization di ogni chiamata API per autenticare la richiesta.
  1. 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:

  1. Client Credentials
  • I servizi si autenticano con client ID e client secret pre-provisionati, rilasciati dagli amministratori della piattaforma.
  1. Generazione del JWT
  • Dopo un'autenticazione riuscita, Cognito rilascia un JWT, che deve essere inviato nell'header Authorization di tutte le richieste API.
  1. 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 tenantId univoco (UUID) che isola dati e permessi.
  • Le operazioni API richiedono tipicamente il parametro tenantId per 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.