Wie lässt sich der Java SPNEGO-Client unter Windows ausführen?

Um die clientseitige HTTP-SPNEGO-Authentifizierung mit Java unter Windows durchzuführen, müssen Sie den Windows-Registrierungsschlüssel festlegenallowtgtsessionkey. Dies ist gut dokumentiert. Was ich nicht verstehe, ist, wie die Leute damit umgehen? Die meisten Unternehmenswebsites würden niemals akzeptieren, diesen Registrierungsschlüssel in Windows für eine einzelne Software zu ändern. Denken Sie auch an den Ärger, wenn dieser auf jeder Arbeitsstation in der Organisation geändert werden muss. Dies ist jedoch nur eine Theorie, da ich bisher keinen unserer Kunden dazu verleiten konnte, diesen Registrierungsschlüssel zu ändern.

Ich beschuldige sie nicht. Die meisten Unternehmensadministratoren sehen dies alsentspannend die Sicherheit und wird es daher beanstanden.

Ich habe folgendes gelesen:Gibt es in Java oder über eine Befehlszeile eine Möglichkeit, ein Kerberos-Ticket für einen Dienst mithilfe der nativen SSPI-API abzurufen?

aber es ist jetzt ziemlich alt.

Daher verstehe ich wirklich, wirklich nicht, wie Menschen Windows + Java-Client + Kerberos auf etwas anderem als Universitätsumgebungen, Heimanwendern und dergleichen zum Laufen bringen können.

Die Frage der Unternehmensadministratoren lautet: "Warum müssen wir diesen Registrierungsschlüssel festlegen, wenn Anwendungen wie IE und Firefox keine Probleme mit SPNEGO haben?ohne Einstellung dieses Schlüssels? ". Nun, ich weiß, was die Antwort ist. Es liegt (höchstwahrscheinlich) daran, dass Anwendungen wie IE und Firefox auf der nativen Windows-GSS-API (SSPI) basieren, während Suns Java eine eigene Implementierung verwendet.

Ich gehe davon aus, dass mit etwas wieWAFFEL würde das problem lösen aber ich würde eine reine java lösung bevorzugen. Ich gehe auch davon aus, dass es nicht hilfreich ist, Java-basierte Lösungen wie Spring Security oder Apache HttpClient zu verwenden, da alle unter diesem Problem leiden werden.

Jede Hilfe oder Hinweise wäre sehr dankbar.

UPDATE1:

Ich habe festgestellt, dass es eine gibtRFE dafür in der Fehlerdatenbank von Oracle. Es gibt auch einPatch zu diesem Thema eingereicht von einem Oracle-Mitarbeiter undDiskussionen auf der JDK-Mailingliste über diese Funktion. Das macht mich nicht viel weiser, als soweit ich verstehen kann, dass dies in aktuellem Java 7 nicht verfügbar ist, auch nicht als experimentell. Recht?

UPDATE2:

Die Frage ist jetztwieder lebendig auf der OpenJDK Security Dev-Mailingliste.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage