Postgres + Kerberos + ActiveDirectory

Hallo zusammen,

ich beiße mir hier die Zähne an folgender Konfiguration aus:

  • PostgreSQL 9.6 auf CentOS 7.5 in einem Docker-Container
  • Windows 2008 R2 als ActiveDirectory-Server (und KDC)
  • Authentifizierung via Kerberos/GSSAPI

Ich habe im AD einen Postgres-Benutzer angelegt und diesen erfolgreich via ktpass auf das Principal POSTGRES/postgres.mydomain.local@MYDOMAIN.LOCAL gemappt und das Ganze dann als postgres.keytab exportiert. Der Docker-Container verwendet den Hostnamen postgres.mydomain.local, die Ausgabe von hostname passt. Die keytab-Datei ist in der postgresql.conf eingetragen (krb_server_keyfile) und krb_caseins_users = on ist ebenfalls gesetzt. In der pg_hba.conf ist zunächst nur für den Test-Client gss aktiviert.

Wenn ich mich vom Client aus verbinde, erhalte ich immer folgende Fehlermeldung:
Failed to connect to server. Der Authentifizierungstyp 7 wird nicht unterstützt.

Typ 7 steht für die GSSAPI. Im Principal habe ich POSTGRES in Groß- und Kleinschreibung probiert, kein Unterschied.

Im PG-Log erscheint folgende Meldung:
FATAL: GSSAPI-Authentifizierung für Benutzer »username« fehlgeschlagen
DETAIL: Verbindung stimmte mit pg_hba.conf-Zeile 100 überein: »host all all 192.168.1.54/32 gss include_realm=1 krb_realm=MYDOMAIN.LOCAL«

Laut Doku muss Kerberos/GSSAPI während der Compilierung aktiviert werden. Kann es sein, dass das standardmäßig nicht der Fall ist? Die Installation von PG erfolgte durch Importieren des Redhat-Repos und yum install postgresql96 postgresql96-server postgresql96-contrib

Habe ich irgendwo einen Denkfehler oder fehlt schlicht etwas?

Nebenbei: Anmeldung via LDAP (Plaintext ohne TLS) funktioniert.

Danke & Gruß,
Christian

Hallo Christian,

ist Dein Problem noch aktuell?
Ich habe bei uns Postgres 10 mit CentOS 7.5 in einer AD-Umgebung mit GSSAPI-Authentifizierung erfolgreich aufgesetzt.

VG
Maehrus

pg-config sollte dir Auskunft über die aktivierten Optionen geben.

Grüße
Uwe