Résoudre les problèmes d'intégration d'Active Directory dans AlloyDB Omni

Sélectionnez une version de la documentation :

Ce document décrit les erreurs que vous pouvez rencontrer lorsque vous intégrez Active Directory à AlloyDB Omni. Des exemples d'erreurs et de corrections recommandées sont également fournis.

L'intégration d'Active Directory à AlloyDB Omni échoue

Lorsque Active Directory ne fonctionne pas, procédez comme suit pour résoudre le problème :

  1. Vérifiez le fichier keytab. Assurez-vous de pouvoir vous connecter au serveur Active Directory à l'aide du fichier keytab que vous avez obtenu :

    kinit -kt PATH_TO_KEYTAB_FILE postgres/DBCLUSTER_HOST@REALM
    
  2. Validez l'hôte.

    Assurez-vous que l'hôte que vous avez utilisé lorsque vous avez généré le fichier keytab est le même que celui de la commande psql, comme indiqué dans l'exemple suivant :

    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
    

    Assurez-vous que DBCLUSTER_HOST est identique dans les deux commandes.

  3. Vérifiez le fichier krb5.conf.

    Vérifiez le contenu du fichier krb5.conf sur le client. Assurez-vous que le contenu du fichier krb5.conf est correct pour votre configuration.

    cat /etc/krb5.conf
    

    Voici le résultat attendu :

    [libdefaults]
      default_realm = REALM
    [realms]
      REALM = {
          kdc = KDC_HOST
          admin_server = ADMIN_SERVER
      }
    [domain_realm]
      HOST_DOMAIN_1 = REALM
      HOST_DOMAIN_2 = REALM
    
  4. Vérifiez les entrées et l'état du HBA.

    1. Exécutez les commandes suivantes et envoyez les journaux à l'équipe produit AlloyDB Omni.

      psql -h DBCLUSTER_HOST -U postgres -d postgres
      

      psql vous invite à saisir le mot de passe de l'utilisateur postgres :

      Password for user postgres:
      

      psql renvoie le résultat suivant :

      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. Exécutez la commande suivante dans l'invite psql :

      postgres=# table pg_hba_file_rules ;
      

      Un résultat semblable à l'exemple suivant est renvoyé.

      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. Consultez les messages d'erreur dans la colonne error, qui peuvent vous aider à identifier les problèmes de configuration.

  6. Imprimez les journaux de niveau de débogage krb5.

    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

Cette erreur se produit lorsqu'un utilisateur système qui tente de se connecter n'a pas créé d'utilisateur PostgreSQL ou n'a pas mappé de rôle.

Solution recommandée

Créez un rôle dans PostgreSQL avec le nom d'utilisateur requis ou ajoutez une entrée pour cet utilisateur au fichier pg_ident.conf.

psql (16.3)
Type "help" for help.

postgres=# CREATE ROLE user2 WITH LOGIN;
CREATE ROLE

Le redémarrage du serveur échoue avec l'erreur "could not load /var/lib/postgresql/data/pg_hba.conf"

Description

Le redémarrage du serveur a échoué, car le fichier pg_hba.conf contient des entrées non valides.

Solution recommandée

Recherchez les entrées non valides dans le fichier pg_hba.conf.

FATAL : Échec de la synchronisation du groupe LDAP

Description

La synchronisation LDAP échoue lorsque l'utilisateur tente de se connecter.

Solution recommandée

  1. Connectez-vous en tant qu'utilisateur postgres et exécutez la commande suivante :

    CREATE EXTENSION google_pg_auth;
    
  2. Consultez le fichier postgresql.log pour savoir pourquoi la connexion LDAP a échoué.

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

Étapes suivantes