Ich versuche, eine Keytab für einen Java-Server einzurichten, um die Kerberos-Authentifizierung in einem Windows-Netzwerk zu unterstützen. Ich habe Mühe, es auch auf der Ebene der Befehlszeilentools zum Laufen zu bringen, bin noch nicht einmal so weit wie das Server-Setup! Mein Plan ist gerade, es auf meinem Entwicklungs-PC zum Laufen zu bringen, da ich Entwicklungsarbeit und Debugging zu erledigen habe. Mein Ziel ist es also, dass der Java-Server auf meinem PC ausgeführt wird und der Client auf demselben Computer ausgeführt wird, der eine Verbindung zu ihm herstellt.
Folgendes habe ich bisher getan: Ich mache mir wirklich einen Fehler, damit ich alle möglichen falschen Sachen machen kann!
Erstellt einen Dienstprinzipalnamen
Ich habe einen unserer Domänenadministratoren beauftragt, diesen Befehl auszuführen:
setspn -A TEST/pc-name.mydomain.com my-user-name
Dies schien erfolgreich zu sein und ich kann diesen SPN erfolgreich auflisten
setspn -L my-user-name
Erstellt eine Keytab-Datei
Ich habe mit diesem Befehl eine Keytab erstellt:
ktpass /princ TEST/[email protected] /pass <my-password> /ptype KRB5_NT_SRV_HST /out <keytab-filename>
Dies scheint eine Keytab erfolgreich zu erstellen, obwohl es warnt, dass Ptyp und Kontotyp nicht übereinstimmen (aber was auch immer ich für Ptyp wähle, ich bekomme die gleiche Warnung). Wenn ich diesen Befehl ausführe:
klist -k file:/<keytab-filename>
Dann listet es den SPN auf, den ich erwarten würde, nämlich TEST/[email protected]
Das Problem!
Jetzt möchte ich überprüfen, ob das Keytab für diesen SPN funktioniert, also laufe ich
kinit -t <keytab-filename> TEST/[email protected]
Ich erhalte dann die Fehlermeldung "krb_error 6 Client nicht in Kerberos-Datenbank gefunden".
Was mache ich falsch?
java com.ibm.security.krb5.internal.tools.Klist -f -e -a -k FILE:D:\IBM\IBMSSO\SvcP8SSOAPP-FNTD101.keytab
(mit IBM JAVA)