Pool utente, pool di identità e JWT

Uso di AWS Security per sviluppatori

Rahul Singh

Technical Product Manager

Cognito è due servizi con un solo nome

Amazon Cognito

  • Identità gestita per gli utenti della tua app
  • Un nome, due servizi distinti

Due domande sopra un perimetro tratteggiato etichettato Amazon Cognito. Dentro, due pannelli blu affiancati: un pool utente descritto come rubrica utenti e un pool di identità descritto come broker di credenziali. Linee da entrambi convergono su un riquadro arancione tratteggiato in basso, che nota che molte app usano entrambi.

Uso di AWS Security per sviluppatori

Cognito è due servizi con un solo nome

Amazon Cognito

  • Identità gestita per gli utenti della tua app
  • Un nome, due servizi distinti

Quale ti serve?

  • Accesso e profili utente: user pool
  • Browser o mobile che chiamano AWS direttamente: identity pool

Due domande sopra un perimetro tratteggiato etichettato Amazon Cognito. Dentro, due pannelli blu affiancati: un pool utente descritto come rubrica utenti e un pool di identità descritto come broker di credenziali. Linee da entrambi convergono su un riquadro arancione tratteggiato in basso, che nota che molte app usano entrambi.

Uso di AWS Security per sviluppatori

Uno user pool gestisce l'accesso

Una rubrica utenti gestita

  • Registrazione e accesso
  • Reimpostazione password
  • Autenticazione a più fattori

Flusso verticale: un utente dell'app accede a un pool utente che conserva le password, e il pool restituisce un riquadro con un ID token, un access token e un refresh token

Uso di AWS Security per sviluppatori

Uno user pool gestisce l'accesso

Una rubrica utenti gestita

  • Registrazione e accesso
  • Reimpostazione password
  • Autenticazione a più fattori

 

Se va a buon fine, tre token

Flusso verticale: un utente dell'app accede a un pool utente che conserva le password, e il pool restituisce un riquadro con un ID token, un access token e un refresh token

Uso di AWS Security per sviluppatori

Uno user pool gestisce l'accesso

Una rubrica utenti gestita

  • Registrazione e accesso
  • Reimpostazione password
  • Autenticazione a più fattori

 

Se va a buon fine, tre token

  • ID token: chi è l'utente
  • Access token: cosa può chiamare
  • Refresh token: per ottenerne di nuovi dopo

Flusso verticale: un utente dell'app accede a un pool utente che conserva le password, e il pool restituisce un riquadro con un ID token, un access token e un refresh token

Uso di AWS Security per sviluppatori

Un identity pool rilascia credenziali AWS

I token non sono credenziali

  • Prova d'identità per la tua app
  • Non sono credenziali per accedere ai servizi AWS

 

Identity pool: token fidato in ingresso, credenziali in uscita

Flusso verticale con la stessa geometria del diagramma dello user pool: si presenta un token fidato a un identity pool, che verifica chi l'ha emesso e restituisce credenziali AWS limitate a un ruolo e a scadenza

Uso di AWS Security per sviluppatori

Un identity pool rilascia credenziali AWS

I token non sono credenziali

  • Prova d'identità per la tua app
  • Non sono credenziali per accedere ai servizi AWS

 

Identity pool: token fidato in ingresso, credenziali in uscita

  • Un job di build ha scambiato un token OIDC
  • Prova che possiedi, scambiata per un badge d'accesso

Flusso verticale con la stessa geometria del diagramma dello user pool: si presenta un token fidato a un identity pool, che verifica chi l'ha emesso e restituisce credenziali AWS limitate a un ruolo e a scadenza

Uso di AWS Security per sviluppatori

Un'app, entrambe le parti

Un browser usa entrambi

  1. Accedi e ricevi un token
  2. Invia quel token alla tua API

Bearer token: chi lo possiede, lo usa

Flusso verticale. Un browser accede a uno user pool, che restituisce un token. Quel singolo token poi segue due rami: a sinistra verso la tua API e a destra verso un identity pool. L'identity pool restituisce credenziali, e sono quelle a raggiungere S3.

Uso di AWS Security per sviluppatori

Un'app, entrambe le parti

Un browser usa entrambi

  1. Accedi e ricevi un token
  2. Invia quel token alla tua API
  3. Scambia lo stesso token per credenziali

Flusso verticale. Un browser accede a uno user pool, che restituisce un token. Quel singolo token poi segue due rami: a sinistra verso la tua API e a destra verso un identity pool. L'identity pool restituisce credenziali, e sono quelle a raggiungere S3.

Uso di AWS Security per sviluppatori

Un'app, entrambe le parti

Un browser usa entrambi

  1. Accedi e ricevi un token
  2. Invia quel token alla tua API
  3. Scambia lo stesso token per credenziali
  4. Raggiungi S3 con quelle credenziali

Token al tuo codice, credenziali ad AWS

Flusso verticale. Un browser accede a uno user pool, che restituisce un token. Quel singolo token poi segue due rami: a sinistra verso la tua API e a destra verso un identity pool. L'identity pool restituisce credenziali, e sono quelle a raggiungere S3.

Uso di AWS Security per sviluppatori

Un token è testo con una firma

Tre segmenti uniti da puntini e etichettati Header, Payload e Signature. Un lucchetto aperto sul payload e una staffa sotto i primi due segmenti mostra fino a dove arriva la firma.

JWT: JSON Web Token

  • Claims: affermazioni etichettate sull'utente
Uso di AWS Security per sviluppatori

Un token è testo con una firma

Tre segmenti uniti da puntini e etichettati Header, Payload e Signature. Un lucchetto aperto sul payload e una staffa sotto i primi due segmenti mostra fino a dove arriva la firma.

JWT: JSON Web Token

  • Claims: affermazioni etichettate sull'utente
  • Codificato, non cifrato
  • Chiunque può leggerlo e chiunque può modificarlo
Uso di AWS Security per sviluppatori

Verifica prima di leggere

Prima si verifica

  • JWKS: JSON Web Key Set, le chiavi pubbliche di firma dell'emittente
  • Firma controllata con quelle chiavi

Un diagramma a cancelli verticali. Arriva un token e supera quattro verifiche in ordine: firma, emittente, audience e scadenza. Le chiavi pubbliche dell'emittente alimentano il controllo firma lateralmente, e solo oltre il quarto controllo si arriva a un riquadro verde per leggere i claim.

Uso di AWS Security per sviluppatori

Verifica prima di leggere

Prima si verifica

  • JWKS: JSON Web Key Set, le chiavi pubbliche di firma dell'emittente
  • Firma controllata con quelle chiavi

 

Poi tre claim

  • iss: il tuo user pool
  • aud su un ID token, client_id su un access token
  • exp: ancora valido

Un diagramma a cancelli verticali. Arriva un token e supera quattro verifiche in ordine: firma, emittente, audience e scadenza. Le chiavi pubbliche dell'emittente alimentano il controllo firma lateralmente, e solo oltre il quarto controllo si arriva a un riquadro verde per leggere i claim.

Uso di AWS Security per sviluppatori

Un token verificato può essere sbagliato

Due card abbinate affiancate. La card dell'ID token è indicata come token di identità, mostra il client ID nel claim di audience e nota che non ha scope, sopra un riquadro grigio su chi è l'utente. La card dell'access token è indicata come token di accesso, mostra il client ID nel proprio claim identificatore client e nota che ha uno scope, sopra un riquadro arancione su cosa può chiamare. Una striscia tratteggiata sotto entrambe nota che il claim dei gruppi Cognito appare in entrambi i token.

Verificato, ma comunque il token sbagliato

Uso di AWS Security per sviluppatori

Un token verificato può essere sbagliato

Due card abbinate affiancate. La card dell'ID token è indicata come token di identità, mostra il client ID nel claim di audience e nota che non ha scope, sopra un riquadro grigio su chi è l'utente. La card dell'access token è indicata come token di accesso, mostra il client ID nel proprio claim identificatore client e nota che ha uno scope, sopra un riquadro arancione su cosa può chiamare. Una striscia tratteggiata sotto entrambe nota che il claim dei gruppi Cognito appare in entrambi i token.

Verificato, ma comunque il token sbagliato

token_use indica il tipo

  • cognito:groups viaggia su entrambi, e non è uno scope

  • scope: cosa può chiamare il token

  • sub: quale utente, e non cambia mai
  • Identità non è permesso
Uso di AWS Security per sviluppatori

Esercitiamoci!

Uso di AWS Security per sviluppatori

Preparing Video For Download...