Resolva problemas de integração do Active Directory no AlloyDB Omni

Selecione uma versão da documentação:

Este documento descreve os erros que pode encontrar quando integra o Active Directory no AlloyDB Omni. Também são fornecidos exemplos de erros e correções recomendadas.

A integração do Active Directory com o AlloyDB Omni falha

Quando o Active Directory não está a funcionar, siga estes passos para resolver o problema:

  1. Valide o ficheiro keytab. Certifique-se de que consegue estabelecer ligação ao servidor Active Directory através do keytab que obteve:

    kinit -kt PATH_TO_KEYTAB_FILE postgres/DBCLUSTER_HOST@REALM
    
  2. Valide o anfitrião.

    Certifique-se de que o anfitrião que usou quando gerou o ficheiro keytab é o mesmo anfitrião no comando psql, conforme mostrado no exemplo seguinte:

    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
    

    Certifique-se de que DBCLUSTER_HOST é o mesmo em ambos os comandos.

  3. Valide o ficheiro krb5.conf.

    Valide o conteúdo do ficheiro krb5.conf no cliente. Certifique-se de que o conteúdo do ficheiro krb5.conf está correto para a sua configuração.

    cat /etc/krb5.conf
    

    Segue-se o resultado esperado:

    [libdefaults]
      default_realm = REALM
    [realms]
      REALM = {
          kdc = KDC_HOST
          admin_server = ADMIN_SERVER
      }
    [domain_realm]
      HOST_DOMAIN_1 = REALM
      HOST_DOMAIN_2 = REALM
    
  4. Valide as entradas e o estado do HBA.

    1. Execute os seguintes comandos e envie os registos à equipa do produto AlloyDB Omni.

      psql -h DBCLUSTER_HOST -U postgres -d postgres
      

      O psql pede-lhe a palavra-passe do utilizador postgres:

      Password for user postgres:
      

      O comando psql devolve o seguinte resultado:

      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.
      
    2. Execute o seguinte comando no comando psql:

      postgres=# table pg_hba_file_rules ;
      

      É devolvido um resultado semelhante ao exemplo seguinte.

      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       |                          |
      
  5. Reveja as mensagens de erro na coluna error, que podem ajudar a identificar problemas de configuração.

  6. Imprima os registos de nível krb5 de depuração.

    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

Descrição

Este erro ocorre quando um utilizador do sistema que está a tentar estabelecer ligação não tem um utilizador do PostgreSQL criado ou não tem uma função mapeada.

Correção recomendada

Crie uma função no PostgreSQL com o nome de utilizador necessário ou adicione uma entrada para este utilizador ao ficheiro pg_ident.conf.

psql (16.3)
Type "help" for help.

postgres=# CREATE ROLE user2 WITH LOGIN;
CREATE ROLE

O reinício do servidor falha com o erro: "could not load /var/lib/postgresql/data/pg_hba.conf"

Descrição

O reinício do servidor falhou porque o ficheiro pg_hba.conf contém entradas inválidas.

Correção recomendada

Verifique se existem entradas inválidas no ficheiro pg_hba.conf.

FATAL: a sincronização de grupos LDAP falhou

Descrição

A sincronização LDAP falha quando o utilizador tenta iniciar sessão.

Correção recomendada

  1. Inicie sessão como utilizador postgres e execute o seguinte:

    CREATE EXTENSION google_pg_auth;
    
  2. Verifique o ficheiro postgresql.log para obter informações sobre o motivo pelo qual o início de sessão LDAP falhou.

    cat /obs/diagnostic/postgresql.log | grep google_pg_auth
    

O que se segue?