Jak ludzie sprawiają, że klient Java SPNEGO działa w systemie Windows?

Aby wykonać uwierzytelnianie HTTP SPNEGO po stronie klienta za pomocą Java w systemie Windows, należy ustawić klucz rejestru systemu Windowsallowtgtsessionkey. Jest to dobrze udokumentowane. Nie rozumiem, jak ludzie się z tym obchodzą? Większość witryn korporacyjnych nigdy nie zaakceptowałaby zmiany tego klucza rejestru w systemie Windows ze względu na pojedynczy program. Pomyśl także o kłopotach, jeśli trzeba to zmienić na każdej stacji roboczej w organizacji. Ale to tylko teoria, ponieważ do tej pory nie udało mi się przekonać żadnego z naszych klientów do zmiany tego klucza rejestru.

Nie obwiniam ich. Większość administratorów korporacyjnych zobaczy toodprężający bezpieczeństwo i dlatego będzie go sprzeciwiać.

Przeczytałem to:Czy w Javie lub w wierszu poleceń można uzyskać bilet Kerberos dla usługi przy użyciu natywnego interfejsu API SSPI?

ale jest teraz dość stary.

Naprawdę, naprawdę nie rozumiem, jak ludzie mogą sprawić, by klient Windows + Java + Kerberos działał na czymkolwiek innym niż środowiska uniwersyteckie, użytkownicy domowi i tym podobne.

Pytanie od administratorów korporacyjnych brzmi: „dlaczego musimy ustawić ten klucz rejestru, gdy aplikacje takie jak IE i Firefox nie mają problemów z wykonywaniem SPNEGObez ustawianie tego klucza? ”Cóż, wiem, jaka jest odpowiedź. Dzieje się tak, ponieważ (najprawdopodobniej) aplikacje takie jak IE i Firefox są oparte na natywnym interfejsie API GSS systemu Windows (SSPI), podczas gdy Java firmy Sun używa własnej implementacji.

Zakładam, że używając czegoś takiegoWAFEL rozwiąże problem, ale wolałbym czyste rozwiązanie Java. Zakładam również, że nie pomoże to rozwiązaniom opartym na Javie, takim jak Spring Security lub Apache HttpClient, ponieważ wszyscy będą cierpieć z powodu tego problemu.

Każda pomoc lub wskazówki byłyby bardzo mile widziane.

AKTUALIZACJA1:

Odkryłem, że jestRFE do tego w bazie danych błędów Oracle. Jest też apoprawka zgłoszona w tej sprawie przez pracownika Oracle idyskusje na liście dyskusyjnej JDK o tej funkcji. Nie czyni mnie dużo mądrzejszym niż to, o ile rozumiem, że nie jest dostępny w obecnej Javie 7, nawet jako eksperymentalnej. Dobrze?

UPDATE2:

Pytanie jest terazznowu żywy na liście mailingowej OpenJDK Security Dev.

questionAnswers(2)

yourAnswerToTheQuestion