La configurazione di Active Directory in AlloyDB Omni è facoltativa ed è disabilitata per impostazione predefinita. Solo gli ambienti che utilizzano Active Directory Server per l'autenticazione possono utilizzare questo meccanismo di configurazione.
Prima di iniziare
Abilita l'autenticazione di Active Directory
Per attivare l'autenticazione Active Directory in AlloyDB Omni, segui questi passaggi, che includono la configurazione dell'interfaccia di programmazione delle applicazioni di servizio di sicurezza generico (GSSAPI), un'interfaccia di programmazione delle applicazioni che consente ai programmi di accedere ai servizi di sicurezza.
Aggiungi le seguenti voci al file
/var/lib/postgresql/data/pg_hba.conf
, prima della voce
host all all all scram-sha-256
.Esegui questo comando Docker per aggiungere
gss
all'interno del container:docker exec CONTAINER_NAME sed -i 's;^host all all all scram-sha-256$;hostgssenc all all 0.0.0.0/0 gss map=gssmap\n&;' /var/lib/postgresql/data/pg_hba.conf
Esegui questo comando Docker per verificare che il file
pg_hba.conf
si trovi all'interno del container:docker exec CONTAINER_NAME cat /var/lib/postgresql/data/pg_hba.conf
Verifica che nel file sia presente la seguente voce:
hostgssenc all all 0.0.0.0/0 gss map=gssmap
Per saperne di più, consulta Il file pg_hba.conf.
Copia il file della scheda delle chiavi nella directory dei dati all'interno dell'immagine AlloyDB Omni.
docker cp PATH TO KEYTAB FILE CONTAINER_NAME:/var/lib/postgresql/data/alloydb.keytab docker exec CONTAINER_NAME chmod 600 /var/lib/postgresql/data/alloydb.keytab docker exec CONTAINER_NAME chown postgres:postgres /var/lib/postgresql/data/alloydb.keytab
Il file keytab viene generato da Kerberos per il server PostgreSQL. Per scoprire di più sull'autenticazione, vedi Autenticazione GSSAPI.
Aggiungi una voce per il file keytab al file
/var/lib/postgresql/data/DATA_DIR/postgresql.conf
.Esegui questo comando Docker per aggiungere la voce all'interno del container:
docker exec CONTAINER_NAME sed -i '$akrb_server_keyfile='"'"'/var/lib/postgresql/data/alloydb.keytab'"'" /var/lib/postgresql/data/postgresql.conf
Esegui questo comando Docker per verificare il file
postgresql.conf
all'interno del container:docker exec CONTAINER_NAME tail /var/lib/postgresql/data/postgresql.conf
Assicurati che nel file sia presente la seguente voce:
krb_server_keyfile=/var/lib/postgresql/data/alloydb.keytab
Per ulteriori informazioni, vedi krb_server_keyfile.
(Facoltativo) Aggiungi voci al file
/var/lib/postgresql/data/DATA_DIR/pg_ident.conf
.Quando utilizzi un sistema di autenticazione esterno come GSSAPI, il nome dell'utente del sistema operativo che ha avviato la connessione potrebbe non essere lo stesso dell'utente (ruolo) del database che vuoi utilizzare.
In questo caso, specifica il mapping utente di sistema-utente PostgreSQL nel file
/var/lib/postgresql/data/DATA_DIR/pg_ident.conf
:docker exec -it CONTAINER_NAME bash $ echo -e " gssmap /^(.*)@EXAMPLE\.COM$ \1 gssmap /^(.*)@example\.com$ \1 " | column -t | tee -a /var/lib/postgresql/data/pg_ident.conf
Per implementare la mappatura dei nomi utente, specifica
map=gssmap
nel campo delle opzioni del filepg_hba.conf
.Per ulteriori informazioni sull'autenticazione basata sull'identità, consulta Ident Maps.
Ricarica le configurazioni PostgreSQL utilizzando il seguente comando:
docker exec -it CONTAINER_NAME psql -h localhost -U postgres psql (16.3) Type "help" for help. postgres=# select pg_reload_conf();
Testa l'autenticazione di Active Directory
Per verificare che l'autenticazione Active Directory funzioni, segui questi passaggi:
- Accedi ad Active Directory utilizzando
kinit
. Esegui questo comando
psql
dalla macchina in cui esegui di solitokinit
:root@4f6414ad02ef:/# kinit AD_USER_NAME Password for user1@YOUR.REALM: root@4f6414ad02ef:/# psql --h ALLOYDB_SERVER_HOST_NAME -U AD_USER_NAME psql (16.6 (Ubuntu 16.6-0ubuntu0.24.04.1), server 16.3) GSSAPI-encrypted connection Type "help" for help. user1=#
Disattiva l'autenticazione di Active Directory
Per disattivare l'autenticazione Active Directory in AlloyDB Omni, segui questi passaggi, che disattivano GSSAPI:
Rimuovi le voci nel file
pg_hba.conf
che rimandano al metodo di autenticazionegss
:docker exec CONTAINER_NAME sed -i '/hostgssenc all all 0.0.0.0\/0 gss map=gssmap/d' /var/lib/postgresql/data/pg_hba.conf
Ricarica le configurazioni PostgreSQL utilizzando il seguente comando:
docker exec -it CONTAINER_NAME psql -h localhost -U postgres psql (16.3) Type "help" for help. postgres=# select pg_reload_conf();
Passaggi successivi
- Integra il supporto dei gruppi Active Directory con AlloyDB Omni.
- Risolvi i problemi di Active Directory in AlloyDB Omni.