Come posso attivare l'autenticazione a più fattori TOTP per i pool di utenti Amazon Cognito?

4 minuti di lettura
0

Desidero attivare l'autenticazione a più fattori (MFA) per gli utenti della mia app. Come posso farlo con un token di password monouso basato sul tempo (TOTP) utilizzando i pool di utenti di Amazon Cognito?

Breve descrizione

Per attivare l'autenticazione MFA con TOTP per gli utenti dell'app, configura l'autenticazione MFA con token di software TOTP per il tuo pool di utenti.

Importante: prima di configurare il token TOTP, tieni presente quanto segue:

  • È necessario aggiungere l'autenticazione MFA al pool di utenti prima di configurare il token TOTP.
  • I token TOTP non possono essere associati a un utente finché non tenta di accedere alla tua app o a meno che non sia già autenticato.
  • L'autenticazione MFA non supporta gli utenti federati in un pool di utenti.

Di seguito è riportato un esempio di come configurare l'autenticazione MFA con TOTP utilizzando l'Interfaccia della linea di comando AWS (AWS CLI) e Google Authenticator.

Risoluzione

Nota: se ricevi errori durante l'esecuzione dei comandi dell'Interfaccia della linea di comando AWS CLI, assicurati di utilizzare la versione più recente di AWS CLI.

1.    Esegui il seguente comando AssociateSoftwareToken da AWS CLI per avviare la configurazione del generatore di token MFA:

aws cognito-idp associate-software-token --access-token eyJraWQiO........ua5Pq3NaA
{
    "SecretCode":
    "AETQ6XXMDFYMEPFQQ7FD4HKXXXXAOY3MBXIVRBLRXX3SXLSHHWOA"
}

2.    Apri la homepage di Google Authenticator, quindi seleziona Inizia.

3.    Seleziona Inserisci una chiave di configurazione.

4.    Per Nome account, inserisci un nome account. Ad esempio, BobPhone.

Nota: il nome dell'account può essere qualsiasi identificatore di stringa.

5.    Per La tua chiave, copia e incolla il codice segreto generato dal comando AssociateSoftwareToken eseguito nel primo passaggio.

6.    Seleziona l'elenco a discesa Tipo di chiave, quindi seleziona Basato sul tempo.

7.    Verifica il token del software utilizzando la password basata sul tempo visualizzata sullo schermo e nel codice seguente:

aws cognito-idp verify-software-token --access-token eyJraWQiO........ua5Pq3NaA --user-code 269194 --friendly-device-name BobPhone
{
    "Status": "SUCCESS"
}

8.    Configura la configurazione MFA dell'utente per l'autenticazione MFA con TOTP utilizzando uno dei seguenti comandi in AWS CLI:

set-user-mfa-preference

Questo comando consente agli utenti di impostare la propria configurazione MFA.

Esempio di comando set-user-mfa-preference

aws cognito-idp set-user-mfa-preference --software-token-mfa-settings Enabled=true,PreferredMfa=true --access-token eyJraWQiO........ua5Pq3NaA

admin-set-user-mfa-preference

Questo comando consente a un amministratore di impostare la configurazione MFA di un utente.

Esempio di comando admin-set-user-mfa-preference

aws cognito-idp admin-set-user-mfa-preference --software-token-mfa-settings Enabled=true,PreferredMfa=true --username Bob --user-pool-id us-east-1_123456789

9.    Verifica la tua configurazione autenticando l'utente in uno dei seguenti modi:

L'Interfaccia utente ospitata da Amazon Cognito.

Le chiamate API InitiateAuth o AdminInitiateAuth in AWS CLI.

Nota: per autenticare un utente con uno dei due metodi, è necessario disporre della password, del nome utente e del codice MFA del software.

Gli esempi seguenti mostrano come testare l'autenticazione utente utilizzando il comando AdminInitiateAuth.

Esempio di comando admin-initiate-auth

aws cognito-idp admin-initiate-auth --user-pool-id us-east-1_123456789 --client-id 3n4b5urk1ft4fl3mg5e62d9ado --auth-flow ADMIN_USER_PASSWORD_AUTH --auth-parameters USERNAME=Bob,PASSWORD=P@ssw0rd

Importante: assicurati di sostituire le seguenti variabili con le tue informazioni: user-pool-id, client-id, username, e password. Inoltre, assicurati di attivare il flusso ALLOW_ADMIN_USER_PASSWORD_AUTH per il client di app del pool di utenti effettuando le seguenti operazioni:

1.    Apri la console Amazon Cognito.

2.    Seleziona Gestisci pool di utenti.

3.    Seleziona il client di app e seleziona Mostra dettagli.

4.    Seleziona Abilita l'autenticazione della password del nome utente per le API di amministrazione per l'autenticazione (ALLOW_ADMIN_USER_PASSWORD_AUTH).

5.  Seleziona Salva le modifiche del client di app.

Per maggiori informazioni, consulta Flusso di autenticazione dell'amministratore.

Esempio di output del comando admin-initiate-auth

{
    "ChallengeName": "SOFTWARE_TOKEN_MFA",
    "ChallengeParameters": {
        "FRIENDLY_DEVICE_NAME": "BobPhone",
        "USER_ID_FOR_SRP": "Bob"
    },
    "Session": "Xxz6iadwuWJGN4Z7f4ul5p50IHUqITquoaNxxyDvep.......3A6GokZWKeQ6gkFW4Pgv"
}

Esempio di comando admin-respond-to-auth-challenge

aws cognito-idp admin-respond-to-auth-challenge --user-pool-id us-east-1_123456789 --client-id 3n4b5urk1ft4fl3mg5e62d9ado --challenge-name SOFTWARE_TOKEN_MFA --challenge-responses USERNAME=Bob,SOFTWARE_TOKEN_MFA_CODE=123456 --session  Xxz6iadwuWJGN4Z7f4ul5p50IHUqITquoaNxxyDvep.......3A6GokZWKeQ6gkFW4Pgv

Importante: assicurati di sostituire le seguenti variabili con le tue informazioni: client-id, username, e software\ _token\ _MFA\ _Code.

Esempio di output del comando admin-respond-to-auth-challenge

{
    "AuthenticationResult": {
        "ExpiresIn": 3600,
        "RefreshToken": "eyJjdHkiOiJKV1QiLCJlbmMi.......dlbjrtyizlLzZZ5fjjCgL__AVHEzYycjJs_h3i-ly_KixDNtz9VEC",

        "TokenType": "Bearer",
        "NewDeviceMetadata": {

            "DeviceKey": "us-east-1_28abrd7-10f7-9fc6-a931-3ede1c8ckd75",
            "DeviceGroupKey": "-Gqkj3brS"

        },
        "IdToken": "eyJraWQiOiIzcFFSV29Pb........mNMbE_vvPkQYBuA9ackoER1aSABFGaKK4BpgPjMn7la_A",
        "AccessToken": "eyJraWQiOi...........qwvQq4awt63TyWw"

    },
    "ChallengeParameters": {}
}

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa