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