La configuración de Active Directory en AlloyDB Omni es opcional y está inhabilitada de forma predeterminada. Solo los entornos que usen Active Directory Server para la autenticación pueden usar este mecanismo de configuración.
Antes de empezar
Habilitar la autenticación de Active Directory
Para habilitar la autenticación de Active Directory en AlloyDB Omni, sigue estos pasos, que incluyen la configuración de la interfaz de programación de aplicaciones de servicio de seguridad genérico (GSSAPI), que es una interfaz de programación de aplicaciones que permite a los programas acceder a los servicios de seguridad.
Añade las siguientes entradas al archivo
/var/lib/postgresql/data/pg_hba.conf
antes de la entrada
host all all all scram-sha-256
.Ejecuta el siguiente comando de Docker para añadir
gss
al contenedor: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
Ejecuta el siguiente comando de Docker para verificar que el archivo
pg_hba.conf
está dentro del contenedor:docker exec CONTAINER_NAME cat /var/lib/postgresql/data/pg_hba.conf
Comprueba que el archivo contiene la siguiente entrada:
hostgssenc all all 0.0.0.0/0 gss map=gssmap
Para obtener más información, consulta el archivo pg_hba.conf.
Copia el archivo de la pestaña de claves en el directorio de datos de la imagen de 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
Kerberos genera el archivo keytab para el servidor PostgreSQL. Para obtener más información sobre la autenticación, consulta Autenticación GSSAPI.
Añade una entrada para el archivo keytab al archivo
/var/lib/postgresql/data/DATA_DIR/postgresql.conf
.Ejecuta el siguiente comando de Docker para añadir la entrada al contenedor:
docker exec CONTAINER_NAME sed -i '$akrb_server_keyfile='"'"'/var/lib/postgresql/data/alloydb.keytab'"'" /var/lib/postgresql/data/postgresql.conf
Ejecuta el siguiente comando de Docker para verificar el archivo
postgresql.conf
dentro del contenedor:docker exec CONTAINER_NAME tail /var/lib/postgresql/data/postgresql.conf
Asegúrate de que el archivo contenga la siguiente entrada:
krb_server_keyfile=/var/lib/postgresql/data/alloydb.keytab
Para obtener más información, consulta krb_server_keyfile.
Opcional: Añade entradas al archivo
/var/lib/postgresql/data/DATA_DIR/pg_ident.conf
.Cuando se usa un sistema de autenticación externo como GSSAPI, el nombre del usuario del sistema operativo que ha iniciado la conexión puede no ser el mismo que el del usuario de la base de datos (rol) que se quiere usar.
En este caso, especifica la asignación de usuario del sistema a usuario de PostgreSQL en el archivo
/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
Para implementar la asignación de nombres de usuario, especifica
map=gssmap
en el campo de opciones del archivopg_hba.conf
.Para obtener más información sobre la autenticación basada en identidades, consulte Ident Maps.
Vuelve a cargar las configuraciones de PostgreSQL con el siguiente comando:
docker exec -it CONTAINER_NAME psql -h localhost -U postgres psql (16.3) Type "help" for help. postgres=# select pg_reload_conf();
Probar la autenticación de Active Directory
Para verificar que la autenticación de Active Directory funciona correctamente, sigue estos pasos:
- Inicia sesión en Active Directory con
kinit
. Ejecuta el siguiente comando
psql
desde la máquina en la que sueles ejecutarkinit
: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=#
Inhabilitar la autenticación de Active Directory
Para inhabilitar la autenticación de Active Directory en AlloyDB Omni, sigue estos pasos, que inhabilitan la GSSAPI:
Elimina las entradas del archivo
pg_hba.conf
que apunten al método de autenticacióngss
.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
Vuelve a cargar las configuraciones de PostgreSQL con el siguiente comando:
docker exec -it CONTAINER_NAME psql -h localhost -U postgres psql (16.3) Type "help" for help. postgres=# select pg_reload_conf();
Siguientes pasos
- Integra la compatibilidad con grupos de Active Directory en AlloyDB Omni.
- Solucionar problemas de Active Directory en AlloyDB Omni.