View a markdown version of this page

Gestisci i metodi di autenticazione in AWS SDK - 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à.

Gestisci i metodi di autenticazione in AWS SDK

Gli utenti dei pool di utenti di Amazon Cognito possono accedere con una varietà di opzioni o fattori di accesso iniziale. Per alcuni fattori, gli utenti possono procedere con l'autenticazione a più fattori (MFA). Questi primi fattori includono nome utente e password, password monouso, passkey e autenticazione personalizzata. Per ulteriori informazioni, consulta Flusso di autenticazione. Quando l'applicazione dispone di componenti dell'interfaccia utente integrati e importa un modulo AWS SDK, è necessario creare la logica dell'applicazione per l'autenticazione. È necessario scegliere uno dei due metodi principali e, in base a tale metodo, i meccanismi di autenticazione che si desidera implementare.

È possibile implementare l'autenticazione basata sul client laddove l'applicazione, o il client, dichiari anticipatamente il tipo di autenticazione. L'altra opzione è l'autenticazione basata sulle scelte, in cui l'app raccoglie un nome utente e richiede i tipi di autenticazione disponibili per gli utenti. È possibile implementare questi modelli insieme nella stessa applicazione o suddividerli tra client di app, in base alle proprie esigenze. Ogni metodo ha caratteristiche uniche, ad esempio l'autenticazione personalizzata in base al client e l'autenticazione senza password in quella basata sulla scelta.

Nelle applicazioni personalizzate che eseguono l'autenticazione con l'implementazione AWS SDK dell'API dei pool di utenti, è necessario strutturare le richieste API in modo da allinearle alla configurazione del pool di utenti, alla configurazione del client dell'app e alle preferenze sul lato client. Una InitiateAuth sessione che inizia con un'autenticazione basata sulle scelte. AuthFlow USER_AUTH Amazon Cognito risponde alla tua API proponendo un metodo di autenticazione preferito o un elenco di scelte. Una sessione che inizia con AuthFlow o CUSTOM_AUTH passa direttamente all'autenticazione personalizzata con trigger Lambda.

Alcuni metodi di autenticazione sono fissati a uno dei due tipi di flusso e alcuni metodi sono disponibili in entrambi.

Choice-based authentication

L'applicazione può richiedere i seguenti metodi di autenticazione nell'autenticazione basata sulle scelte. Dichiarate queste opzioni nel PREFERRED_CHALLENGE parametro di InitiateAuth or AdminInitiateAuth, o nel parametro di or. ChallengeName RespondToAuthChallenge AdminRespondToAuthChallenge

Per esaminare queste opzioni nel loro contesto API, vedi ChallengeName in RespondToAuthChallenge.

Choice-based l'accesso presenta un problema in risposta alla tua richiesta iniziale. Questa sfida verifica la disponibilità di un'opzione richiesta o fornisce un elenco di scelte disponibili. L'applicazione può mostrare queste scelte agli utenti, che quindi inseriscono le credenziali per il loro metodo di accesso preferito e procedono con l'autenticazione nelle risposte alla sfida.

Nel flusso di autenticazione sono disponibili le seguenti opzioni basate sulle scelte. Tutte le richieste di questo tipo richiedono che l'app raccolga prima un nome utente o lo recuperi da una cache.

  1. Opzioni di richiesta USERNAME solo con AuthParameters o. Amazon Cognito risponde a una SELECT_CHALLENGE sfida. Da lì, l'applicazione può richiedere all'utente di selezionare una sfida e restituire questa risposta al pool di utenti.

  2. Richiedi una sfida preferita con AuthParameters of PREFERRED_CHALLENGE e i relativi parametri, se presenti. Ad esempio, se richiedi un PREFERRED_CHALLENGE ofPASSWORD_SRP, devi includere ancheSRP_A. Se l'utente, il pool di utenti e il client dell'app sono tutti configurati per la sfida preferita, Amazon Cognito risponde con la fase successiva di tale sfida, ad esempio PASSWORD_VERIFIER nel PASSWORD_SRP flusso o CodeDeliveryDetails nei flussi EMAIL_OTP andSMS_OTP. Se la sfida preferita non è disponibile, Amazon Cognito risponde con un elenco SELECT_CHALLENGE di sfide disponibili.

  3. Fai prima accedere gli utenti, quindi richiedi le loro opzioni di autenticazione basate sulla scelta. Una GetUserAuthFactors richiesta con il token di accesso di un utente che ha effettuato l'accesso restituisce i fattori di autenticazione basati sulla scelta disponibili e le relative impostazioni MFA. Con questa opzione, un utente può accedere prima con nome utente e password, quindi attivare una diversa forma di autenticazione. Puoi anche utilizzare questa operazione per verificare le opzioni aggiuntive per un utente che ha effettuato l'accesso con una sfida preferita.

Per configurare il client dell'app per l'autenticazione basata sulle scelte, aggiungi i flussi di autenticazione ALLOW_USER_AUTH consentiti. È inoltre necessario scegliere i fattori basati sulla scelta che si desidera consentire nella configurazione del pool di utenti. Il processo seguente illustra come scegliere i fattori di autenticazione basati sulla scelta.

Amazon Cognito console
Per configurare le opzioni di autenticazione basate sulla scelta in un pool di utenti
  1. Accedi AWS e accedi alla console dei pool di utenti di Amazon Cognito. Scegli un pool di utenti o creane uno nuovo.

  2. Nella configurazione del pool di utenti, seleziona il Sign-in menu. Individua Opzioni per l'accesso basato sulla scelta e scegli Modifica.

  3. L'opzione Password è sempre disponibile. Ciò include i PASSWORD_SRP flussi PASSWORD e. Seleziona le scelte aggiuntive che desideri aggiungere alle opzioni dei tuoi utenti. È possibile aggiungere una password monouso per WEB_AUTHN un messaggio e-mail e una password monouso per EMAIL_OTP un messaggio SMS. SMS_OTP

  4. Scegli Save changes (Salva modifiche).

API/SDK

Il seguente testo parziale CreateUserPool o di UpdateUserPool richiesta configura tutte le opzioni disponibili per l'autenticazione basata sulle scelte.

"Policies": { "SignInPolicy": { "AllowedFirstAuthFactors": [ "PASSWORD", "WEB_AUTHN", "EMAIL_OTP", "SMS_OTP" ] } },

Client-based authentication

Client-based l'autenticazione supporta i seguenti flussi di autenticazione. Dichiarate queste opzioni nel AuthFlow parametro InitiateAuth or AdminInitiateAuth.

  1. USER_PASSWORD_AUTH e ADMIN_USER_PASSWORD_AUTH

    Sign-in con password permanenti

    MFA dopo l'accesso

    Questo flusso di autenticazione è equivalente all'PASSWORDautenticazione basata sulle scelte.

  2. USER_SRP_AUTH

    Sign-in con password permanenti e payload sicuro

    MFA dopo l'accesso

    Questo flusso di autenticazione è equivalente all'PASSWORD_SRPautenticazione basata sulle scelte.

  3. REFRESH_TOKEN_AUTH

    Aggiorna i token

    Questo flusso di autenticazione è disponibile solo nell'autenticazione basata sul client.

  4. CUSTOM_AUTH

    Autenticazione personalizzata

    Questo flusso di autenticazione è disponibile solo nell'autenticazione basata sul client.

Con l'autenticazione basata sul client, Amazon Cognito presuppone che tu abbia determinato in che modo l'utente desidera autenticarsi prima di iniziare i flussi di autenticazione. La logica per determinare il fattore di accesso che un utente desidera fornire deve essere determinata con impostazioni predefinite o prompt personalizzati, quindi dichiarata nella prima richiesta al pool di utenti. La InitiateAuth richiesta dichiara un accesso AuthFlow che corrisponde direttamente a una delle opzioni elencate, ad esempio. USER_SRP_AUTH Con questa dichiarazione, la richiesta include anche i parametri per iniziare l'autenticazione, ad esempio USERNAMESECRET_HASH, e. SRP_A Amazon Cognito potrebbe dare seguito a questa richiesta con ulteriori sfide, ad PASSWORD_VERIFIER esempio relative all'SRP o SOFTWARE_TOKEN_MFA all'accesso tramite password con TOTP MFA.

Per configurare il client dell'app per l'autenticazione basata sul client, aggiungi eventuali flussi di autenticazione diversi ALLOW_USER_AUTH dai flussi di autenticazione consentiti. Gli esempi sonoALLOW_USER_PASSWORD_AUTH,ALLOW_CUSTOM_AUTH,ALLOW_REFRESH_TOKEN_AUTH. Per consentire i flussi di autenticazione basati sul client, non è richiesta alcuna configurazione aggiuntiva del pool di utenti.