This document describes errors you might encounter when you integrate Active Directory in AlloyDB Omni. Examples of errors and recommended fixes are also provided.
Active Directory integration with AlloyDB Omni fails
When Active Directory isn't working, follow these steps to resolve the issue:
Verify the keytab file. Make sure that you can connect to the Active Directory server using the keytab that you obtained:
kinit -kt PATH_TO_KEYTAB_FILE postgres/DBCLUSTER_HOST@REALM
Verify the host.
Make sure that the host you used when you generated the keytab file is the same host in the psql command, as shown in the following example:
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
Make sure that
DBCLUSTER_HOST
is the same in both commands.Verify the
krb5.conf
file.Verify the contents of the
krb5.conf
file on the client. Make sure that thekrb5.conf
file contents are correct for your configuration.cat /etc/krb5.conf
The following is the expected output:
[libdefaults] default_realm = REALM [realms] REALM = { kdc = KDC_HOST admin_server = ADMIN_SERVER } [domain_realm] HOST_DOMAIN_1 = REALM HOST_DOMAIN_2 = REALM
Verify the HBA entries and status.
Run the following commands and send the logs to the AlloyDB Omni product team.
psql -h DBCLUSTER_HOST -U postgres -d postgres
psql
prompts you for thepostgres
user's password:Password for user postgres:
psql
returns the following output:psql (17.5 (Ubuntu 17.5-0ubuntu0.25.04.1), server 16.3) SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off, ALPN: none) Type "help" for help.
Run the following command in the
psql
prompt:postgres=# table pg_hba_file_rules ;
Output similar to the following example is returned.
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 | |
Review error messages in the
error
column, which can help you identify configuration issues.Print the debug level
krb5
logs.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
Description
This error occurs when a system user, who is trying to connect, doesn't have a PostgreSQL user created, or doesn't have a role mapped.
Recommended fix
Create a role in PostgreSQL with the required username, or add an entry for this
user to the pg_ident.conf
file.
psql (16.3)
Type "help" for help.
postgres=# CREATE ROLE user2 WITH LOGIN;
CREATE ROLE
Server restart fails with error: "could not load /var/lib/postgresql/data/pg_hba.conf"
Description
The server restart failed because the pg_hba.conf
contains invalid entries.
Recommended fix
Check the pg_hba.conf
file for invalid entries.
FATAL: LDAP group synchronization failed
Description
LDAP synchronization fails when the user tries to sign in.
Recommended fix
Sign in as the
postgres
user and run the following:CREATE EXTENSION google_pg_auth;
Check the
postgresql.log
file for information about why the LDAP sign-in failed.cat /obs/diagnostic/postgresql.log | grep google_pg_auth