La configuration d'Active Directory dans AlloyDB Omni est facultative et désactivée par défaut. Seuls les environnements utilisant Active Directory Server pour l'authentification peuvent utiliser ce mécanisme de configuration.
Avant de commencer
Activer l'authentification Active Directory
Pour activer l'authentification Active Directory dans AlloyDB Omni, suivez ces étapes, qui incluent la configuration de l'interface de programmation d'application Generic Security Service (GSSAPI), qui est une interface de programmation d'application permettant aux programmes d'accéder aux services de sécurité.
Ajoutez les entrées suivantes au fichier
/var/lib/postgresql/data/pg_hba.conf
, avant l'entrée
host all all all scram-sha-256
.Exécutez la commande Docker suivante pour ajouter
gss
dans le conteneur :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
Exécutez la commande Docker suivante pour vérifier que le fichier
pg_hba.conf
se trouve dans le conteneur :docker exec CONTAINER_NAME cat /var/lib/postgresql/data/pg_hba.conf
Vérifiez que l'entrée suivante figure dans le fichier :
hostgssenc all all 0.0.0.0/0 gss map=gssmap
Pour en savoir plus, consultez le fichier pg_hba.conf.
Copiez le fichier keytab dans le répertoire de données de l'image 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
Le fichier keytab est généré par Kerberos pour le serveur PostgreSQL. Pour en savoir plus sur l'authentification, consultez Authentification GSSAPI.
Ajoutez une entrée pour le fichier keytab au fichier
/var/lib/postgresql/data/DATA_DIR/postgresql.conf
.Exécutez la commande Docker suivante pour ajouter l'entrée dans le conteneur :
docker exec CONTAINER_NAME sed -i '$akrb_server_keyfile='"'"'/var/lib/postgresql/data/alloydb.keytab'"'" /var/lib/postgresql/data/postgresql.conf
Exécutez la commande Docker suivante pour vérifier le fichier
postgresql.conf
à l'intérieur du conteneur :docker exec CONTAINER_NAME tail /var/lib/postgresql/data/postgresql.conf
Assurez-vous que l'entrée suivante figure dans le fichier :
krb_server_keyfile=/var/lib/postgresql/data/alloydb.keytab
Pour en savoir plus, consultez krb_server_keyfile.
Facultatif : Ajoutez des entrées au fichier
/var/lib/postgresql/data/DATA_DIR/pg_ident.conf
.Lorsque vous utilisez un système d'authentification externe tel que GSSAPI, le nom de l'utilisateur du système d'exploitation qui a initié la connexion peut ne pas être le même que celui de l'utilisateur (rôle) de la base de données que vous souhaitez utiliser.
Dans ce cas, spécifiez le mappage entre l'utilisateur système et l'utilisateur PostgreSQL dans le fichier
/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
Pour implémenter le mappage des noms d'utilisateur, spécifiez
map=gssmap
dans le champ des options du fichierpg_hba.conf
.Pour en savoir plus sur l'authentification basée sur l'identité, consultez Cartes d'identité.
Rechargez les configurations PostgreSQL à l'aide de la commande suivante :
docker exec -it CONTAINER_NAME psql -h localhost -U postgres psql (16.3) Type "help" for help. postgres=# select pg_reload_conf();
Tester l'authentification Active Directory
Pour vérifier que l'authentification Active Directory fonctionne, procédez comme suit :
- Connectez-vous à Active Directory à l'aide de
kinit
. Exécutez la commande
psql
suivante à partir de la machine sur laquelle vous exécutez habituellementkinit
: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=#
Désactiver l'authentification Active Directory
Pour désactiver l'authentification Active Directory dans AlloyDB Omni, procédez comme suit pour désactiver GSSAPI :
Supprimez les entrées du fichier
pg_hba.conf
qui pointent vers la méthode d'authentificationgss
: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
Rechargez les configurations PostgreSQL à l'aide de la commande suivante :
docker exec -it CONTAINER_NAME psql -h localhost -U postgres psql (16.3) Type "help" for help. postgres=# select pg_reload_conf();
Étapes suivantes
- Intégrez la compatibilité avec les groupes Active Directory à AlloyDB Omni.
- Résoudre les problèmes liés à Active Directory dans AlloyDB Omni