Gestire l'autenticazione integrata utilizzando i criteri delle password

Puoi impostare e gestire le norme relative alle password per gli utenti del database delle tue istanze AlloyDB per PostgreSQL.

Per una panoramica dei metodi di autenticazione disponibili in AlloyDB, consulta Autenticazione.

Informazioni sulle policy per le password

Se gli utenti del database della tua applicazione si autenticano con le tue istanze AlloyDB utilizzando il metodo integrato basato su password, puoi rendere l'autenticazione più sicura applicando password efficaci. Puoi definire e abilitare l'applicazione forzata delle password impostando un criterio per le password sulle tue istanze.

Limitazioni delle policy per le password

Le norme relative alle password di AlloyDB presentano le seguenti limitazioni:

  • I criteri per le password si applicano solo alle password create dopo l'impostazione dei criteri. Le password utente esistenti non sono interessate da una modifica dei criteri per le password.

  • I criteri per le password si applicano solo alle password inserite come testo normale. I criteri per le password non si applicano alle password inserite come stringhe criptate.

Impostare una policy per le password dell'istanza

Puoi impostare un criterio per le password su un'istanza configurando i flag delle password su un'istanza.

  • Non consentire il nome utente: impedisce l'utilizzo del nome utente nella password.

  • Complessità della password: verifica se la password contiene il numero consentito di caratteri minuscoli, maiuscoli, numerici e non alfanumerici. Controlla anche se la lunghezza della password è valida.

  • Scadenza password: assicurati che le password vengano ruotate periodicamente.

Per un elenco dei flag dei criteri per le password supportati da AlloyDB, consulta Flag dei criteri per le password.

Applica la complessità delle password

Per applicare un criterio di complessità della password:

  1. Imposta il flag password.enforce_complexity su ON.
  2. Utilizza i flag della policy delle password per definire la tua policy delle password.

Ad esempio, per applicare un criterio per le password che prevede che una password debba contenere almeno una lettera maiuscola, un numero e avere una lunghezza di almeno 10 caratteri, devi impostare i seguenti flag:

  • Da password.enforce_complexity a ON
  • Flag password.min_uppercase_letters su 1
  • Flag password.min_numerical_chars su 1
  • Flag password.min_pass_length su 10

Una volta impostati questi flag, il tentativo di impostare una password utente del database che non è conforme a questa policy delle password non va a buon fine. Ad esempio, con questo criterio impostato, il seguente comando client psql non va a buon fine perché la password foo è inferiore a 10 caratteri e non contiene un numero o un carattere maiuscolo.

CREATE USER USERNAME WITH PASSWORD 'foo';

Imponi la scadenza delle password

Per applicare i criteri di scadenza della password:

  1. Imposta il flag password.enforce_expiration su ON.

  2. Imposta il flag password.expiration_in_days sul numero di giorni dopo l'impostazione di una password prima che scada.

  3. Imposta il flag password.notify_expiration_in_days sul numero di giorni prima della scadenza di una password in cui un utente inizia a ricevere notifiche di scadenza della password.

Ad esempio, per applicare un criterio password che prevede che le password scadano dopo 30 giorni e che gli utenti ricevano una notifica 15 giorni prima della scadenza della password, devi impostare quanto segue:

  • Da password.enforce_expiration a ON
  • Flag password.expiration_in_days su 30
  • Flag password.notify_expiration_in_days su 15

Se la password di un utente scade, l'utente non può connettersi all'istanza AlloyDB. Per reimpostare la password di un utente, vedi Modificare la password di un utente del database.

Non consentire i nomi utente nelle password

Per applicare il criterio che impedisce a una password di contenere un nome utente, segui questi passaggi:

Ad esempio, per assicurarti che una password non contenga un nome utente come sottostringa, imposta quanto segue:

  • Da password.enforce_password_does_not_contain_username a ON

Se questo flag è impostato, l'operazione seguente non va a buon fine perché la password alex-secret contiene il nome utente Alex:

CREATE USER Alex WITH PASSWORD 'alex-secret';

Passaggi successivi