Falla la integración de Active Directory con AlloyDB Omni
Cuando Active Directory no funciona, sigue estos pasos para resolver el problema:
Agrega el objeto binario
psqla tu variable de entorno PATH. Sipsqlno está en tu PATH predeterminado, puedes agregar el directorio que contiene el ejecutablepsqlal PATH de tu sesión. Esto te permite usarpsqldirectamente sin especificar la ruta completa en los comandos posteriores.export PATH=$PATH:/usr/lib/postgresql/18/bin
Como alternativa, puedes reemplazar
psqlpor/usr/lib/postgresql/18/bin psqlen cada uno de los siguientes comandos.Verifica el archivo keytab. Asegúrate de poder conectarte al servidor de Active Directory con el keytab que obtuviste:
kinit -kt PATH_TO_KEYTAB_FILE postgres/DBCLUSTER_HOST@REALM
Verifica el host.
Asegúrate de que el host que usaste cuando generaste el archivo keytab sea el mismo host en el comando psql, como se muestra en el siguiente ejemplo:
KTPass /princ postgres/DBCLUSTER_HOST@REALM /Pass PASSWORD /mapuser postgres /crypto ALL /ptype KRB5_NT_Principal /out OUTPUT_PATH psql -h DBCLUSTER_HOST -d DB_NAME -U USERNAME@REALM
Asegúrate de que
DBCLUSTER_HOSTsea el mismo en ambos comandos.Verifica el archivo
krb5.conf.Verifica el contenido del archivo
krb5.confen el cliente. Asegúrate de que el contenido del archivokrb5.confsea correcto para tu configuración.cat /etc/krb5.conf
Este es el resultado esperado:
[libdefaults] default_realm = REALM [realms] REALM = { kdc = KDC_HOST admin_server = ADMIN_SERVER } [domain_realm] HOST_DOMAIN_1 = REALM HOST_DOMAIN_2 = REALMVerifica las entradas y el estado de HBA.
Ejecuta los siguientes comandos y envía los registros al equipo de producto de AlloyDB Omni.
psql -h DBCLUSTER_HOST -U postgres -d postgres
psqlte solicita la contraseña del usuariopostgres:Password for user postgres:
psqlmuestra el siguiente resultado:psql (18.1) SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off, ALPN: none) Type "help" for help.
Ejecuta el siguiente comando en el mensaje de
psql:postgres=# table pg_hba_file_rules ;
Se muestra un resultado similar al siguiente ejemplo.
rule_number | file_name | line_number | type | database | user_name | address | netmask | auth_method | options | error -------------+--------------------------------------+-------------+---------+----------+--------------------+-----------+-----------------------------------------+-------------+--------------------------+----------------------------------------------------- 1 | /var/lib/postgresql/data/pg_hba.conf | 1 | host | {all} | {alloydbadmin} | 127.0.0.1 | 255.255.255.255 | trust | | | /var/lib/postgresql/data/pg_hba.conf | 2 | hostssl | {all} | {alloydbadmin} | ::1 | ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff | trust | | hostssl record cannot match because SSL is disabled | /var/lib/postgresql/data/pg_hba.conf | 3 | hostssl | {all} | {alloydbpgbouncer} | 0.0.0.0 | 0.0.0.0 | cert | {clientcert=verify-full} | hostssl record cannot match because SSL is disabled | /var/lib/postgresql/data/pg_hba.conf | 4 | hostssl | {all} | {alloydbpgbouncer} | ::1 | ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff | cert | {clientcert=verify-full} | hostssl record cannot match because SSL is disabled | /var/lib/postgresql/data/pg_hba.conf | 5 | hostssl | {all} | {alloydbadmin} | all | | reject | | hostssl record cannot match because SSL is disabled | /var/lib/postgresql/data/pg_hba.conf | 6 | | | | | | | | invalid CIDR mask in address "0.0.0.0/1000" 2 | /var/lib/postgresql/data/pg_hba.conf | 7 | local | {all} | {all} | | | trust | |
Revisa los mensajes de error en la columna
error, que pueden ayudarte a identificar problemas de configuración.Imprime los registros
krb5de nivel de depuración.export KRB5_TRACE=/dev/stderr kinit AD_USER@REALM psql -h DBCLUSTER_HOST -d DB_NAME -U USERNAME@REALM
psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: FATAL: role "user2" does not exist
Descripción
Este error se produce cuando un usuario del sistema que intenta conectarse no tiene un usuario de PostgreSQL creado o no tiene un rol asignado.
Corrección recomendada
Crea un rol en PostgreSQL con el nombre de usuario requerido o agrega una entrada para este usuario al archivo pg_ident.conf.
psql (16.3)
Type "help" for help.
postgres=# CREATE ROLE user2 WITH LOGIN;
CREATE ROLE
No se puede reiniciar el servidor con el error: "could not load /var/lib/postgresql/data/pg_hba.conf"
Descripción
No se pudo reiniciar el servidor porque pg_hba.conf contiene entradas no válidas.
Corrección recomendada
Verifica el archivo pg_hba.conf para detectar entradas no válidas.
FATAL: LDAP group synchronization failed
Descripción
La sincronización de LDAP falla cuando el usuario intenta acceder.
Corrección recomendada
Accede como el usuario
postgresy ejecuta lo siguiente:CREATE EXTENSION google_pg_auth;
Consulta el archivo
postgresql.logpara obtener información sobre por qué falló el acceso a LDAP.cat /obs/diagnostic/postgresql.log | grep google_pg_auth