Attiva, disattiva e utilizza le policy per le password
Questo documento mostra come impostare le policy relative alle password per migliorare la sicurezza delle password per gli utenti nuovi ed esistenti.
Se vuoi impostare una policy per le password dalla console Firebase, consulta Imposta una policy per le password.
Panoramica
Con i criteri relativi alle password, puoi migliorare la sicurezza degli account applicando i requisiti di complessità delle password. Le policy relative alle password supportano i seguenti requisiti per le password:
- È richiesto un carattere minuscolo
- È richiesto un carattere maiuscolo
- Carattere numerico obbligatorio
- Carattere non alfanumerico obbligatorio
- Lunghezza minima della password (da 6 a 30 caratteri; il valore predefinito è 6)
- Lunghezza massima della password (lunghezza massima di 4096 caratteri)
I seguenti caratteri soddisfano il requisito dei caratteri non alfanumerici, se configurati:
^ $ * . [ ] { } ( ) ? " ! @ # % & / \ , > < ' : ; | _ ~ `
Modalità di applicazione
Puoi attivare l'applicazione forzata delle policy relative alle password in due modalità:
- Richiedi: i tentativi di registrazione non vanno a buon fine finché l'utente non aggiorna una password conforme alle policy.
Notifica: gli utenti possono registrarsi con una password non conforme. Vengono restituiti tutti i criteri mancanti necessari per soddisfare la policy. I criteri restituiti includono:
MISSING_LOWERCASE_CHARACTERMISSING_UPPERCASE_CHARACTERMISSING_NUMERIC_CHARACTERMISSING_NON_ALPHANUMERIC_CHARACTERMINIMUM_PASSWORD_LENGTHMAXIMUM_PASSWORD_LENGTH
Puoi inviare queste informazioni all'utente per informarlo di aggiornare la password. L'esempio seguente mostra una risposta contenente i criteri per le password mancanti:
{ "kind": "identitytoolkit#VerifyPasswordResponse", "localId": "CJL1i2", "email": "cloudysanfrancisco@gmail.com", "displayName": "", "idToken": "ID_TOKEN", "registered": true, "userNotifications": [ { "notificationCode": "MISSING_NUMERIC_CHARACTER", "notificationMessage": "Password must contain a numeric character" }, { "notificationCode": "MISSING_NON_ALPHANUMERIC_CHARACTER", "notificationMessage": "Password must contain a non-alphanumeric character" } ] }
I nuovi utenti devono scegliere una password conforme alle norme. Se hai utenti attivi, ti consigliamo di non attivare l'upgrade forzato all'accesso, a meno che tu non intenda applicare immediatamente la policy relativa alle password. Utilizza invece la modalità di notifica, che consente agli utenti di accedere con le password attuali e invia notifiche che descrivono in dettaglio i requisiti mancanti della password.
Quando attivi l'applicazione, imposta forceUpgradeOnSignin su true per attivare l'applicazione in modalità Richiedi. Impostalo su false per abilitare l'applicazione forzata in modalità di notifica.
Attiva l'applicazione
Per applicare forzatamente una policy relativa alle password, segui questi passaggi:
- Se non l'hai ancora fatto, configura l'accesso con email e password.
Per applicare una policy per le password a livello di progetto, segui questi passaggi:
Console Firebase
Nella console Firebase, vai alla pagina Impostazioni di autenticazione.
Seleziona la scheda Policy password.
Configura i requisiti di sicurezza della password selezionati.
Scegli la modalità di applicazione forzata (Richiedi o Notifica) e se forzare gli upgrade delle password all'accesso.
Fai clic su Salva.
REST
Nella console Google Cloud , stampa un token di accesso per l'ID progetto utilizzando il comando
gcloud auth print-access-token:gcloud auth print-access-token --project=PROJECT_IDAttiva una policy per le password utilizzando l'API Identity Toolkit:
curl -X PATCH -d "{'passwordPolicyConfig':{'enforcementState':'ENFORCE','forceUpgradeOnSignin':true,'constraints':{'requireUppercase':true,'requireLowercase':true,'requireNonAlphanumeric':true,'requireNumeric':true,'minLength':MIN_PASSWORD_LENGTH,'maxLength':MAX_PASSWORD_LENGTH}}}" \ -H 'Authorization: Bearer ACCESS_TOKEN' \ -H 'Content-Type: application/json' \ -H 'X-Goog-User-Project: PROJECT_ID' \ "https://identitytoolkit.googleapis.com/admin/v2/projects/PROJECT_ID/config?updateMask=passwordPolicyConfig"Sostituisci quanto segue:
ACCESS_TOKEN: il token di accesso che hai generato in precedenzaPROJECT_ID: il tuo ID progettoMIN_PASSWORD_LENGTH: la lunghezza minima della password richiestaMAX_PASSWORD_LENGTH: la lunghezza massima della password richiesta
Per applicare forzatamente una policy per le password a livello di tenant, segui questi passaggi:
REST
Nella console Google Cloud , stampa un token di accesso per l'ID progetto utilizzando il comando
gcloud auth print-access-token:gcloud auth print-access-token --project=PROJECT_IDAbilita una policy per le password per un tenant utilizzando l'API Identity Toolkit:
curl -X PATCH -d "{'passwordPolicyConfig':{'enforcementState':'ENFORCE','forceUpgradeOnSignin':true,'constraints':{'requireUppercase':true,'requireLowercase':true,'requireNonAlphanumeric':true,'requireNumeric':true,'minLength':MIN_PASSWORD_LENGTH,'maxLength':MAX_PASSWORD_LENGTH}}}" \ -H 'Authorization: Bearer ACCESS_TOKEN' \ -H 'Content-Type: application/json' \ -H 'X-Goog-User-Project: PROJECT_ID' \ "https://identitytoolkit.googleapis.com/admin/v2/projects/PROJECT_ID/tenants/TENANT_ID?updateMask=passwordPolicyConfig"Sostituisci quanto segue:
ACCESS_TOKEN: il token di accesso che hai generato in precedenzaPROJECT_ID: il tuo ID progettoTENANT_ID: l'ID del tenant in cui vuoi applicare la policy relativa alle passwordMIN_PASSWORD_LENGTH: la lunghezza minima della password richiestaMAX_PASSWORD_LENGTH: la lunghezza massima della password richiesta
Disattiva l'applicazione
Per disattivare l'applicazione delle policy relative alle password a livello di progetto, segui questi passaggi:
Console Firebase
Nella console Firebase, vai alla pagina Impostazioni di autenticazione.
Seleziona la scheda Policy password.
Disattivare l'applicazione della policy delle password.
Fai clic su Salva.
REST
Nella console Google Cloud , stampa un token di accesso per l'ID progetto utilizzando il comando
gcloud auth print-access-token:gcloud auth print-access-token --project=PROJECT_IDDisattiva l'applicazione della policy per le password utilizzando l'API Identity Toolkit:
curl -X PATCH -d "{'passwordPolicyConfig':{'enforcementState':'OFF'}}" \ -H 'Authorization: Bearer ACCESS_TOKEN' \ -H 'Content-Type: application/json' \ -H 'X-Goog-User-Project: PROJECT_ID' \ "https://identitytoolkit.googleapis.com/admin/v2/projects/PROJECT_ID/config?updateMask=passwordPolicyConfig"Sostituisci quanto segue:
ACCESS_TOKEN: il token di accesso che hai generato in precedenzaPROJECT_ID: il tuo ID progetto
Per disattivare l'applicazione delle policy relative alle password a livello di tenant, segui questi passaggi:
REST
Nella console Google Cloud , stampa un token di accesso per l'ID progetto utilizzando il comando
gcloud auth print-access-token:gcloud auth print-access-token --project=PROJECT_IDDisattiva l'applicazione forzata della policy relativa alle password per un tenant utilizzando l'API Identity Toolkit:
curl -X PATCH -d "{'passwordPolicyConfig':{'enforcementState':'OFF'}}" \ -H 'Authorization: Bearer ACCESS_TOKEN' \ -H 'Content-Type: application/json' \ -H 'X-Goog-User-Project: PROJECT_ID' \ "https://identitytoolkit.googleapis.com/admin/v2/projects/PROJECT_ID/tenants/TENANT_ID?updateMask=passwordPolicyConfig"Sostituisci quanto segue:
ACCESS_TOKEN: il token di accesso che hai generato in precedenzaPROJECT_ID: il tuo ID progettoTENANT_ID: l'ID del tenant in cui vuoi disattivare la policy relative alle password
Applicazione forzata lato client
Le password possono essere convalidate in base alla policy sulle password per il progetto o un tenant sul lato client prima dell'invio.
import { getAuth, validatePassword } from 'firebase/auth';
const auth = getAuth();
auth.tenantId = TENANT-ID;
const status = await validatePassword(auth, 'password').catch((error) => {
// Password couldn't be validated.
});
const policy = status.passwordPolicy;
// Use the status and policy to show what requirements are met and which are
// missing.