Vor einigen Tagen habe ich mal wieder einen netten Fehler in einer SAP HANA DB bekommen:

1
Authentication Provider.cpp(00685) : Kerberos: Using empty Service Principal Name!

Der erfahrene DB-Admin weiss dann schon, dass mal wieder irgendwas mit dem Single-Sign-On nicht klappt. Und genau so war es.

Hintergrund war ein Datenbankumzug auf einen jungfräulichen Server. Dieser Server war gerade erst frisch in seiner keytab eingerichtet worden. Und der installierende hatte leider den kurzen hostname statt des FQDN verwendet. Somit konnte HANA in der Keytab den Namen nicht finden womit dann auch der Fehler erklärt wird.

Nachsehen kann man das mittels ktutil:

1
2
3
$> ktutil
ktutil: rkt /etc/krb5.keytab
ktutil: list

Was das hervorbringt:

1
2
3
4
5
6
7
8
slot KVNO Principal
---- ---- ----------------------
   1    2         HTTP/ulishana42@ADDOMAIN.WOLF-U.LI
   2    2         HTTP/ulishana42@ADDOMAIN.WOLF-U.LI
   3    2         HTTP/ulishana42@ADDOMAIN.WOLF-U.LI
   4    2          hdb/ulishana42@ADDOMAIN.WOLF-U.LI
   5    2          hdb/ulishana42@ADDOMAIN.WOLF-U.LI
   6    2          hdb/ulishana42@ADDOMAIN.WOLF-U.LI

Der Hostname ist also in diesem Beispiel ulishana42 wobei der FQDN eigentlich ulishana42.germany.wolf-u.li wäre.

Wenn man das korrigiert (also sozusagen die Konfiguration korrekt durchführt), sieht es dann so aus:

1
2
3
4
5
6
7
8
slot KVNO Principal
---- ---- ----------------------
   1    2 HTTP/ulishana42.germany.wolf-u.li@ADDOMAIN.WOLF-U.LI
   2    2 HTTP/ulishana42.germany.wolf-u.li@ADDOMAIN.WOLF-U.LI
   3    2 HTTP/ulishana42.germany.wolf-u.li@ADDOMAIN.WOLF-U.LI
   4    2 hdb/ulishana42.germany.wolf-u.li@ADDOMAIN.WOLF-U.LI
   5    2 hdb/ulishana42.germany.wolf-u.li@ADDOMAIN.WOLF-U.LI
   6    2 hdb/ulishana42.germany.wolf-u.li@ADDOMAIN.WOLF-U.LI

Gut zu erkennen ist, dass der Principal name nun der FQDN ist und für den Nutzer funktioniert nun der Login via Kerberos wieder. Much better :)

Übrigens auch ein beliebter Fehler: Es muss der FQDN des Hostnames eingetragen werden - NICHT der alias der Datenbank (sofern verwendet).