Die Active Directory-Konfiguration in AlloyDB Omni ist optional und standardmäßig deaktiviert. Dieser Konfigurationsmechanismus kann nur in Umgebungen verwendet werden, in denen Active Directory Server für die Authentifizierung verwendet wird.
Hinweise
Active Directory-Authentifizierung aktivieren
So aktivieren Sie die Active Directory-Authentifizierung in AlloyDB Omni: Folgen Sie dieser Anleitung, in der auch die Konfiguration der Generic Security Service Application Program Interface (GSSAPI) beschrieben wird. Die GSSAPI ist eine Programmierschnittstelle, mit der Programme auf Sicherheitsdienste zugreifen können.
Fügen Sie der Datei
/var/lib/postgresql/data/pg_hba.conf
die folgenden Einträge vor dem Eintrag
host all all all scram-sha-256
hinzu.Führen Sie den folgenden Docker-Befehl aus, um
gss
im Container hinzuzufügen: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
Führen Sie den folgenden Docker-Befehl aus, um zu prüfen, ob sich die Datei
pg_hba.conf
im Container befindet:docker exec CONTAINER_NAME cat /var/lib/postgresql/data/pg_hba.conf
Prüfen Sie, ob der folgende Eintrag in der Datei vorhanden ist:
hostgssenc all all 0.0.0.0/0 gss map=gssmap
Weitere Informationen finden Sie unter Die Datei pg_hba.conf.
Kopieren Sie die Schlüssel-Tab-Datei in das Datenverzeichnis im AlloyDB Omni-Image.
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
Die Keytab-Datei wird von Kerberos für den PostgreSQL-Server generiert. Weitere Informationen zur Authentifizierung finden Sie unter GSSAPI-Authentifizierung.
Fügen Sie der Datei
/var/lib/postgresql/data/DATA_DIR/postgresql.conf
einen Eintrag für die Keytab-Datei hinzu.Führen Sie den folgenden Docker-Befehl aus, um den Eintrag im Container hinzuzufügen:
docker exec CONTAINER_NAME sed -i '$akrb_server_keyfile='"'"'/var/lib/postgresql/data/alloydb.keytab'"'" /var/lib/postgresql/data/postgresql.conf
Führen Sie den folgenden Docker-Befehl aus, um die Datei
postgresql.conf
im Container zu prüfen:docker exec CONTAINER_NAME tail /var/lib/postgresql/data/postgresql.conf
Achten Sie darauf, dass der folgende Eintrag in der Datei enthalten ist:
krb_server_keyfile=/var/lib/postgresql/data/alloydb.keytab
Weitere Informationen finden Sie unter krb_server_keyfile.
Optional: Fügen Sie der Datei
/var/lib/postgresql/data/DATA_DIR/pg_ident.conf
Einträge hinzu.Wenn Sie ein externes Authentifizierungssystem wie GSSAPI verwenden, stimmt der Name des Betriebssystemnutzers, der die Verbindung initiiert hat, möglicherweise nicht mit dem Datenbanknutzer (der Rolle) überein, den Sie verwenden möchten.
Geben Sie in diesem Fall die Zuordnung von Systemnutzer zu PostgreSQL-Nutzer in der Datei
/var/lib/postgresql/data/DATA_DIR/pg_ident.conf
an: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
Wenn Sie die Zuordnung von Nutzernamen implementieren möchten, geben Sie
map=gssmap
im Optionsfeld in der Dateipg_hba.conf
an.Weitere Informationen zur identitätsbasierten Authentifizierung finden Sie unter Identitätskarten.
Laden Sie die PostgreSQL-Konfigurationen mit dem folgenden Befehl neu:
docker exec -it CONTAINER_NAME psql -h localhost -U postgres psql (16.3) Type "help" for help. postgres=# select pg_reload_conf();
Active Directory-Authentifizierung testen
So prüfen Sie, ob die Active Directory-Authentifizierung funktioniert:
- Melden Sie sich mit
kinit
in Active Directory an. Führen Sie den folgenden
psql
-Befehl auf dem Computer aus, auf dem Sie normalerweisekinit
ausführen: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=#
Active Directory-Authentifizierung deaktivieren
So deaktivieren Sie die Active Directory-Authentifizierung in AlloyDB Omni:
Entfernen Sie Einträge in der Datei
pg_hba.conf
, die auf die Authentifizierungsmethodegss
verweisen: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
Laden Sie die PostgreSQL-Konfigurationen mit dem folgenden Befehl neu:
docker exec -it CONTAINER_NAME psql -h localhost -U postgres psql (16.3) Type "help" for help. postgres=# select pg_reload_conf();
Nächste Schritte
- Active Directory-Gruppenunterstützung in AlloyDB Omni einbinden
- Fehlerbehebung bei Active Directory in AlloyDB Omni