Lavorare con l'autenticazione adattiva - Amazon Cognito

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Lavorare con l'autenticazione adattiva

Con l'autenticazione adattiva, puoi configurare il bacino d'utenza in modo da bloccare i tentativi di accesso sospetti o aggiungere l'autenticazione tramite secondo fattore in risposta all'aumento del livello di rischio. Per ogni tentativo di accesso, Amazon Cognito genera un punteggio di rischio che indica la probabilità che la richiesta di accesso provenga da un'origine compromessa. Questo punteggio di rischio si basa sui fattori relativi al dispositivo e all'utente forniti dall'applicazione e su altri fattori che Amazon Cognito ricava dalla richiesta. Alcuni fattori che contribuiscono alla valutazione del rischio da parte di Amazon Cognito sono l'indirizzo IP, lo user agent e la distanza geografica da altri tentativi di accesso. L'autenticazione adattiva può attivare o richiedere l'autenticazione a più fattori (MFA) per un utente del pool di utenti quando Amazon Cognito rileva un rischio nella sessione di un utente che non ha ancora scelto un metodo MFA. Quando attivi l'autenticazione MFA, l'utente riceve sempre la richiesta di fornire o impostare un secondo fattore durante l'autenticazione, indipendentemente da come è stata configurata l'autenticazione adattiva. Dal punto di vista dell'utente, l'app offre le indicazioni per configurare l'autenticazione MFA e, facoltativamente, Amazon Cognito gli impedisce di accedere nuovamente fino a quando non configura un fattore aggiuntivo.

Amazon Cognito pubblica parametri relativi ai tentativi di accesso, ai relativi livelli di rischio e alle sfide fallite per Amazon. CloudWatch Per ulteriori informazioni, consulta Visualizzazione delle metriche di protezione dalle minacce.

Per aggiungere l'autenticazione adattiva al bacino d'utenza, consulta Sicurezza avanzata con protezione dalle minacce.

Panoramica dell'autenticazione adattiva

Dal menu Protezione dalle minacce nella console Amazon Cognito, puoi scegliere le impostazioni per l'autenticazione adattiva, incluse le azioni da intraprendere a diversi livelli di rischio e la personalizzazione dei messaggi di notifica agli utenti. Puoi assegnare una configurazione globale di protezione dalle minacce a tutti i client dell'app, ma applicare una configurazione a livello di client ai singoli client di app.

L'autenticazione adattiva di Amazon Cognito assegna uno dei seguenti livelli di rischio a ciascuna sessione utente: AltoMedioBasso o Nessun rischio.

Valuta con attenzione le opzioni disponibili quando modifichi il valore di Enforcement method (Metodo di applicazione) da Audit-only (Solo verifica) a Full-function (Funzione completa). Le risposte automatiche che applichi ai livelli di rischio influiscono sul livello di rischio che Amazon Cognito assegna alle sessioni utente successive che presentano le stesse caratteristiche. Ad esempio, dopo aver scelto di non intraprendere alcuna azione, o Allow (Consentire), le sessioni utente che Amazon Cognito inizialmente ha definito ad alto rischio, le successive sessioni simili vengono considerate da Amazon Cognito a basso rischio.

Per ogni livello di rischio, puoi scegliere tra le seguenti opzioni:

Opzione

Azione

Consenti Gli utenti possono accedere senza un ulteriore fattore.
MFA facoltativa Gli utenti per i quali è configurata l'autenticazione con un secondo fattore, devono completare una seconda sfida per poter accedere. I secondi fattori disponibili sono la verifica tramite SMS e token di software TOTP. Gli utenti senza un secondo fattore configurato possono accedere con un solo set di credenziali.
Richiedi MFA Gli utenti per i quali è configurata l'autenticazione con un secondo fattore, devono completare una seconda sfida per poter accedere. Amazon Cognito blocca l'accesso agli utenti che non hanno un secondo fattore configurato.
Blocco Amazon Cognito blocca tutti i tentativi di accesso al livello di rischio designato.
Nota

Non è necessario verificare i numeri di telefono da utilizzare per la ricezione di SMS come secondo fattore di autenticazione.

Aggiunta di dati di dispositivo e sessione utente alle richieste API

Puoi raccogliere e trasmettere informazioni sulla sessione dell'utente alla protezione dalle minacce di Amazon Cognito quando utilizzi l'API per registrarlo, fargli accedere e reimpostare la sua password. Queste informazioni includono l'indirizzo IP dell'utente e un identificatore univoco del dispositivo.

Potrebbe essere presente un dispositivo di rete intermedio tra gli utenti e Amazon Cognito, ad esempio un servizio proxy o un server applicazioni. Puoi raccogliere i dati contestuali degli utenti e passarli ad Amazon Cognito in modo che l'autenticazione adattiva calcoli il rischio in base alle caratteristiche dell'endpoint utente, anziché al server o al proxy. Se l'app lato client chiama direttamente le operazioni dell'API Amazon Cognito, l'autenticazione adattiva registra automaticamente l'indirizzo IP di origine. Tuttavia, non registra altre informazioni sul dispositivo, ad esempio user-agent, a meno che non venga acquisita anche un'impronta del dispositivo.

Genera questi dati con la libreria di raccolta dati contestuali di Amazon Cognito e inviali alla protezione dalle minacce di Amazon Cognito con ContextDatai parametri and. UserContextData La libreria di raccolta dei dati contestuali è inclusa in. AWS SDKs Per ulteriori informazioni, consulta Integrazione dell'autenticazione e dell'autorizzazione di Amazon Cognito con app web e mobili. Puoi inviarlo ContextData se disponi del piano di funzionalità Plus. Per ulteriori informazioni, consulta Impostazione della protezione dalle minacce.

Quando si chiamano le seguenti operazioni API autenticate di Amazon Cognito dal server applicazioni, viene passato l'IP del dispositivo dell'utente nel parametro ContextData. Inoltre, passa il nome e il percorso del server, nonché i dati relativi all'impronta del dispositivo.

Quando richiami operazioni API non autenticate di Amazon Cognito, puoi inviare una richiesta di protezione dalle minacce di Amazon UserContextData Cognito. Questi dati includono un'impronta del dispositivo nel parametro EncodedData. Puoi anche passare un parametro IpAddress in UserContextData se vengono soddisfatte le seguenti condizioni:

L'app può popolare il parametro UserContextData con dati di impronte del dispositivo codificati e l'indirizzo IP del dispositivo dell'utente nelle seguenti operazioni API non autenticate di Amazon Cognito.

Accettazione di dati utente contestuali aggiuntivi (AWS Management Console)

Il pool di utenti accetta un indirizzo IP nel parametro UserContextData dopo aver attivato la funzionalità Accept additional user context data (Accetta dati utente contestuali aggiuntivi). Non è necessario attivare questa funzionalità se:

  • I tuoi utenti accedono solo con operazioni API autenticate, ad esempio AdminInitiateAuth , e tu utilizzi il ContextData parametro.

  • Vuoi solo che le tue operazioni API non autenticate inviino un'impronta digitale del dispositivo, ma non un indirizzo IP, alla protezione dalle minacce di Amazon Cognito.

Aggiorna il client dell'app come indicato di seguito nella console Amazon Cognito per aggiungere il supporto per ulteriori dati utente contestuali.

  1. Accedi alla console Amazon Cognito.

  2. Nel riquadro di navigazione, scegli Manage your User Pools (Gestisci i tuoi bacini d'utenza) e scegli i bacini d'utenza che intendi modificare.

  3. Scegli il menu dei client dell'app.

  4. Scegli o crea un client per l'app. Per ulteriori informazioni, consulta Configurazione di un client dell'app per un pool di utenti.

  5. Scegli Edit (Modifica) nel container App client information (Informazioni sul client dell'app).

  6. Nell'area Advanced authentication settings (Impostazioni di autenticazione avanzate) per il client dell'app, scegli Accept additional user context data (Accetta dati utente contestuali aggiuntivi).

  7. Scegli Save changes (Salva modifiche).

Per configurare il client dell'app in modo che accetti i dati contestuali dell'utente nell'API Amazon Cognito, imposta su EnablePropagateAdditionalUserContextData true in una richiesta CreateUserPoolClientor UpdateUserPoolClient. Per informazioni su come utilizzare la protezione dalle minacce nella tua app web o mobile, consultaRaccolta di dati per la protezione dalle minacce nelle applicazioni. Quando l'app chiama Amazon Cognito dal server, raccogli i dati di contesto degli utenti dal lato client. Di seguito è riportato un esempio che utilizza il metodo JavaScript getData SDK.

var EncodedData = AmazonCognitoAdvancedSecurityData.getData(username, userPoolId, clientId);

Quando progetti la tua app per utilizzare l'autenticazione adattiva, ti consigliamo di integrare l'ultimo SDK Amazon Cognito nell'app. L'ultima versione dell'SDK raccoglie informazioni di impronta digitale del dispositivo come ID, modello e fuso orario del dispositivo. Per ulteriori informazioni su Amazon Cognito SDKs, consulta Installare un SDK per pool di utenti. La protezione dalle minacce di Amazon Cognito salva e assegna un punteggio di rischio solo agli eventi inviati dall'app nel formato corretto. Se Amazon Cognito restituisce una risposta di errore, verifica che la richiesta includa un hash segreto valido e che il IPaddress parametro sia un indirizzo o valido IPv4 . IPv6

Risorse ContextData e UserContextData

Visualizzazione ed esportazione della cronologia degli eventi degli utenti

Amazon Cognito genera un registro per ogni evento di autenticazione di un utente quando abiliti la protezione dalle minacce. Per impostazione predefinita, puoi visualizzare i log degli utenti nel menu Utenti nella console Amazon Cognito o con AdminListUserAuthEventsil funzionamento dell'API. Puoi anche esportare questi eventi su un sistema esterno come CloudWatch Logs, Amazon S3 o Amazon Data Firehose. La funzionalità di esportazione può rendere le informazioni di sicurezza sull'attività degli utenti nella tua applicazione più accessibili ai tuoi sistemi di analisi della sicurezza.

Visualizzazione della cronologia degli eventi dell'utente ()AWS Management Console

Per visualizzare la cronologia degli accessi di un utente, puoi scegliere l'utente dal menu Utenti nella console Amazon Cognito. Amazon Cognito mantiene la cronologia eventi dell'utente per due anni.

Cronologia eventi dell'utente

Ogni evento di accesso ha un ID evento. L'evento contiene anche dati di contesto corrispondenti, come la posizione, i dettagli del dispositivo e i risultati del rilevamento dei rischi.

Puoi anche correlare l'ID evento con il token emesso da Amazon Cognito nel momento in cui ha registrato l'evento. Gli ID e i token di accesso includono questo ID evento nel payload. Amazon Cognito mette inoltre in correlazione l'utilizzo del token di aggiornamento con l'ID evento originale. Puoi tenere traccia dell'ID evento originale risalendo fino all'ID dell'evento di accesso che ha avuto come esito il rilascio dei token di Amazon Cognito. Puoi tracciare l'utilizzo di un token all'interno del sistema di autenticazione fino a un determinato evento di autenticazione. Per ulteriori informazioni, consulta Comprensione dei token web JSON del pool di utenti () JWTs.

Visualizzazione della cronologia degli eventi utente (API/CLI)

Puoi interrogare la cronologia degli eventi degli utenti con l'operazione dell'API Amazon Cognito AdminListUserAuthEventso con AWS Command Line Interface (AWS CLI) with admin-list-user-auth -events.

AdminListUserAuthEvents request

Il seguente corpo della richiesta AdminListUserAuthEvents restituisce il registro delle attività più recente per un utente.

{ "UserPoolId": "us-west-2_EXAMPLE", "Username": "myexampleuser", "MaxResults": 1 }
admin-list-user-auth-events request

La seguente richiesta admin-list-user-auth-events restituisce il registro delle attività più recente per un utente.

aws cognito-idp admin-list-user-auth-events --max-results 1 --username myexampleuser --user-pool-id us-west-2_EXAMPLE
Response

Amazon Cognito restituisce lo stesso corpo di risposta JSON a entrambe le richieste. Di seguito è riportato un esempio di risposta per un evento di accesso gestito che non è risultato contenere fattori di rischio:

{ "AuthEvents": [ { "EventId": "[event ID]", "EventType": "SignIn", "CreationDate": "[Timestamp]", "EventResponse": "Pass", "EventRisk": { "RiskDecision": "NoRisk", "CompromisedCredentialsDetected": false }, "ChallengeResponses": [ { "ChallengeName": "Password", "ChallengeResponse": "Success" } ], "EventContextData": { "IpAddress": "192.168.2.1", "DeviceName": "Chrome 125, Windows 10", "Timezone": "-07:00", "City": "Bellevue", "Country": "United States" } } ], "NextToken": "[event ID]#[Timestamp]" }

Esportazione degli eventi di autenticazione degli utenti

Configura il tuo pool di utenti per esportare gli eventi degli utenti dalla protezione dalle minacce a un sistema esterno. I sistemi esterni supportati (Amazon S3 CloudWatch , Logs e Amazon Data FireHose) potrebbero aggiungere costi alla AWS fattura per i dati inviati o recuperati. Per ulteriori informazioni, consulta Esportazione dei registri delle attività degli utenti che si occupano di protezione dalle minacce.

AWS Management Console
  1. Accedi alla console Amazon Cognito.

  2. Scegli User Pools (Pool di utenti).

  3. Scegli un bacino d'utenza esistente dall'elenco o creane uno nuovo.

  4. Scegli il menu Log streaming. Seleziona Edit (Modifica).

  5. In Stato della registrazione, seleziona la casella di controllo accanto a Attiva l'esportazione del registro delle attività degli utenti.

  6. In Logging destination, scegli il tipo di log con Servizio AWS cui vuoi gestire i log: gruppo di CloudWatch log, flusso Amazon Data Firehose o bucket S3.

  7. La tua selezione riempirà il selettore di risorse con il tipo di risorsa corrispondente. Seleziona un gruppo di log, uno stream o un bucket dall'elenco. Puoi anche selezionare il pulsante Crea AWS Management Console per accedere al servizio selezionato e creare una nuova risorsa.

  8. Seleziona Salva modifiche.

API

Scegli un tipo di destinazione per i registri delle attività degli utenti.

Di seguito è riportato un esempio di corpo della SetLogDeliveryConfiguration richiesta che imposta un flusso Firehose come destinazione del registro.

{ "LogConfigurations": [ { "EventSource": "userAuthEvents", "FirehoseConfiguration": { "StreamArn": "arn:aws:firehose:us-west-2:123456789012:deliverystream/example-user-pool-activity-exported" }, "LogLevel": "INFO" } ], "UserPoolId": "us-west-2_EXAMPLE" }

Di seguito è riportato un esempio di corpo di SetLogDeliveryConfiguration richiesta che imposta un bucket Amazon S3 come destinazione del log.

{ "LogConfigurations": [ { "EventSource": "userAuthEvents", "S3Configuration": { "BucketArn": "arn:aws:s3:::amzn-s3-demo-logging-bucket" }, "LogLevel": "INFO" } ], "UserPoolId": "us-west-2_EXAMPLE" }

Di seguito è riportato un esempio di corpo della SetLogDeliveryConfiguration richiesta che imposta un gruppo di CloudWatch log come destinazione del log.

{ "LogConfigurations": [ { "EventSource": "userAuthEvents", "CloudWatchLogsConfiguration": { "LogGroupArn": "arn:aws:logs:us-west-2:123456789012:log-group:DOC-EXAMPLE-LOG-GROUP" }, "LogLevel": "INFO" } ], "UserPoolId": "us-west-2_EXAMPLE" }

Fornitura del feedback sugli eventi

Il feedback sugli eventi influisce in tempo reale sulla valutazione dei rischi e migliora l'algoritmo di valutazione dei rischi nel corso del tempo. Puoi fornire un feedback sulla validità dei tentativi di accesso tramite la console Amazon Cognito e le operazioni delle API.

Nota

Il tuo feedback sugli eventi influisce sul livello di rischio che Amazon Cognito assegna alle sessioni utente successive con le stesse caratteristiche.

Nella console Amazon Cognito, scegli un utente dal menu Utenti e seleziona Fornisci feedback sull'evento. Puoi controllare i dettagli dell'evento e quindi scegliere Set as valid (Imposta come valido) o Set as invalid (Imposta come non valido).

La console elenca la cronologia degli accessi nei dettagli utente nel menu Utenti. Se selezioni una voce, puoi contrassegnare l'evento come valido o non valido. Puoi anche fornire feedback tramite l'operazione AdminUpdateAuthEventFeedbackAPI del pool di utenti e tramite il AWS CLI comando admin-update-auth-event-feedback.

Quando nella console Amazon Cognito selezioni Set as valid (Imposta come valido) o nell'API fornisci il valore valid per FeedbackValue, indichi ad Amazon Cognito che la sessione utente che ha valutato con un certo livello di rischio è invece attendibile. Quando nella console Amazon Cognito selezioni Set as invalid (Imposta come non valido) o nell'API fornisci il valore invalid per FeedbackValue, indichi ad Amazon Cognito che la sessione utente non è attendibile o che non ha valutato un livello di rischio sufficientemente elevato.

Invio di messaggi di notifica

Con la protezione dalle minacce, Amazon Cognito può avvisare gli utenti dei tentativi di accesso rischiosi. Amazon Cognito può anche chiedere agli utenti di selezionare un link per indicare se l'accesso è valido o non valido. Amazon Cognito utilizza questo feedback per migliorare l'accuratezza del rilevamento del rischio per il tuo bacino d'utenza

Nota

Amazon Cognito invia messaggi di notifica agli utenti solo quando la loro azione genera una risposta automatica al rischio: blocca l'accesso, consenti l'accesso, imposta la MFA su opzionale o richiedi l'autenticazione a più fattori. Ad alcune richieste potrebbe essere assegnato un livello di rischio, ma non generano risposte automatiche di autenticazione adattiva al rischio; per queste, il tuo pool di utenti non invia notifiche. Ad esempio, è possibile che vengano registrate password errate con una classificazione del rischio, ma la risposta di Amazon Cognito è di non riuscire a effettuare l'accesso, non di applicare una regola di autenticazione adattiva.

Nella sezione Automatic risk response (Risposta automatica al rischio) scegli Notify Users (Notifica agli utenti) per i casi di basso, medio e alto rischio.

Notifica agli utenti

Amazon Cognito invia le notifiche e-mail agli utenti a prescindere dalla verifica dell'indirizzo e-mail.

Puoi personalizzare i messaggi e-mail di notifica e fornire i messaggi nelle versioni in formato di testo normale e in formato HTML. Per personalizzare le notifiche e-mail, apri i modelli di posta elettronica da Adaptive authentication messages nella configurazione di protezione dalle minacce. Per ulteriori informazioni sui modelli di e-mail, consulta Modelli dei messaggi.