Gestire l'autenticazione integrata utilizzando i criteri delle password

Select a documentation version:

Questa pagina descrive come impostare e gestire le policy per le password per AlloyDB Omni.

Informazioni sulle policy per le password

Se gli utenti del database della tua applicazione eseguono l'autenticazione con AlloyDB Omni utilizzando il metodo integrato basato su password, puoi rendere l'autenticazione più sicura applicando password efficaci. Puoi definire e abilitare l'applicazione delle password impostando una policy per le password di AlloyDB Omni.

Limitazioni delle policy per le password

Le policy per le password di AlloyDB Omni presentano le seguenti limitazioni:

  • Le policy per le password si applicano alle password create solo dopo averle impostate. Le password utente esistenti non sono interessate da una modifica della policy per le password.

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

Impostare una policy per le password di AlloyDB Omni

Per impostare una policy per le password, aggiorna i parametri delle password GUC (Grand Unified Configuration) nel file di configurazione postgresql.conf. Per scoprire come impostare un parametro GUC, consulta Configurare i flag del database AlloyDB Omni.

Una policy per le password di AlloyDB Omni può includere le seguenti opzioni:

  • Non consentire il nome utente: impedisci 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. Verifica anche se la lunghezza della password è valida.

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

Per un elenco dei flag delle policy per le password supportati da AlloyDB Omni, consulta Flag delle policy per le password.

Precaricare la libreria di convalida delle password

Affinché una policy per le password venga applicata in AlloyDB Omni, è necessario caricare la libreria alloydb_password_validation. Per caricare questa libreria:

  1. Individua il file di configurazione postgresql.conf per l'installazione di AlloyDB Omni e aprilo in un editor di testo.

  2. Individua la riga shared_preload_libraries e verifica se include alloydb_password_validation. In caso contrario, devi aggiungerla. Al termine, la riga shared_preload_libraries sarà simile alla seguente:

    shared_preload_libraries='google_columnar_engine,google_job_scheduler,google_storage,alloydb_password_validation'
    

Applicare la complessità delle password

Per applicare una policy di complessità delle password:

  1. Verifica che il tuo file postgresql.conf precarichi la libreria di convalida delle password.

  2. Imposta il password.enforce_complexity flag su ON.

  3. Utilizza i flag delle policy per le password per definire la policy per le password.

Ad esempio, per applicare una policy per le password che prevede che una password deve contenere almeno una lettera maiuscola, un numero e avere una lunghezza di almeno 10 caratteri, imposta quanto segue nel file postgresql.conf:

  • password.enforce_complexity = ON
  • password.min_uppercase_letters = 1
  • password.min_numerical_chars = 1
  • password.min_pass_length = 10

Dopo aver impostato questi flag, un tentativo di impostare una password utente del database che non rispetta questa policy per le password non riesce. Ad esempio, con questa policy impostata, il seguente comando del client psql non riesce perché la password foo è inferiore a 10 caratteri e non contiene un numero o un carattere maiuscolo.

CREATE USER USERNAME WITH PASSWORD foo;

Applicare la scadenza delle password

Per applicare la policy di scadenza delle password:

  1. Verifica che il tuo file postgresql.conf precarichi la libreria di convalida delle password.

  2. Imposta il password.enforce_expiration flag su ON.

  3. Imposta il password.expiration_in_days flag sul numero di giorni dopo l'impostazione di una password in cui scade.

  4. Imposta il password.notify_expiration_in_days flag 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 una policy per le 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 nel file postgresql.conf:

  • password.enforce_expiration = ON
  • password.expiration_in_days = 30
  • password.notify_expiration_in_days = 15

Se la password di un utente scade, l'utente non può connettersi ad AlloyDB Omni. Per reimpostare la password di un utente:

  1. Connettiti ad AlloyDB Omni utilizzando psql. Ad esempio, se hai installato AlloyDB Omni utilizzando Docker, esegui il seguente comando:

    sh /usr/lib/postgresql/17/bin/psql -h localhost -U postgres

  2. Al prompt postgres=#, esegui il seguente comando:

    ALTER USER USERNAME WITH 'NEW-PASSWORD';
    

Per ulteriori informazioni sulla modifica della password di un utente, consulta ALTER ROLE nella documentazione di PostgreSQL.

Non consentire i nomi utente nelle password

Per applicare la policy che impedisce a una password di contenere un nome utente:

  1. Verifica che il tuo file postgresql.conf precarichi la libreria di convalida delle password.

  2. Imposta password.enforce_password_does_not_contain_username su ON.

Ad esempio, per assicurarti che una password non contenga un nome utente come sottostringa, imposta quanto segue nel file postgresql.conf:

  • password.enforce_password_does_not_contain_username = ON

Se questo flag è impostato, l'operazione seguente non riesce perché la password alex-secret contiene il nome utente alex:

CREATE USER alex WITH PASSWORD 'alex-secret';