Chcę pobrać. Net WS z IBM WebSphere.JAX-WS Klient IBM zużywający .Net WS z uwierzytelnianiem Active Directory (NTLM).
Utworzono klienta WS z implementacją IBM JAX-WS, która zużywa .Net WS na IIS. Klient jest w systemie SUSE, a uwierzytelnianie odbywa się za pomocą NTLM z usługą Active Directory systemu Windows Server 2003.
Jeśli klient jest wykonywane w wierszu poleceń realizacja wymaga java.net.Authenticator uzyskać poświadczenia, a wniosek jest udany.
Jeśli klient jest wykonywany wewnątrz RAD podmiot uwierzytelniający nie zadzwonił i nie jest on z 401.
Jeśli klient jest wykonywany wewnątrz WebSphere podmiot uwierzytelniający nie zadzwonił i nie jest on z 401.
Jeśli utworzę HttpConnection bezpośrednio do adresu URL .Net WS, zostanie wywołany uwierzytelnianie i żądanie zakończy się powodzeniem.
Jeśli zamiast implementacji IBM JAX-WS używam Axis2 (bezpośrednio, a nie implementacji IBM Axis2 JAX-WS), mogę przekazać do klienta Axis2 obiekt Authenticator, a żądanie jest skuteczne. Działa to tylko w przypadku protokołu NTLM z systemem Windows Server 2003. Po migracji do systemu Windows Server 2008 protokółem uwierzytelniania jest NTLMv2 (wszyscy przechodzą na NTLMv2, ponieważ problemy z zabezpieczeniami w NTLM) i żądanie nie powiedzie się, ponieważ NTLMv2 nie jest obsługiwany przez klienta HTTP 3. X jest zależnością Axis2. I przez jakiś czas nie zamierzają migrować.
Jeśli użyję innej implementacji JAX-WS niż IBM, stracę konsolę i automatyczny odczyt adnotacji, a także stracę wsparcie IBM.
Pytania
I nie będziesz dlaczego wewnątrz RAD się nie zdarzyło pracę, to ten sam program, który działa z linii poleceń.
W jaki sposób wprowadza się uwierzytelnianie implementacji JAX-WS IBM z obsługą protokołu NTLMv2 z określonymi poświadczeniami? (java.net.Authenticator zapewnia to, i powinno się nazywać ... nie)
Czy jest jakikolwiek sposób uczynienia impeementacji IBM JAX-WS do korzystania z innego klienta HTTP niż standardowy?
Nawet implementacja IBM JVM zapewnia autoryzację NTLM (jest to powód, dla którego działa linia poleceń i bezpośrednie wykonywanie HttpConnection), więc nie rozumiem dlaczego nie używają go dla stosu IBM WS.
punkty Plus
Czy istnieje dobry sposób, aby zapewnić dwukierunkową zdolność do konsumpcji WS z uwierzytelnianiem ActiveDirectory?
Komentarz
Wiosna WS wykorzystuje httpclient 4.X, który obsługuje uwierzytelniania NTLMv2, ale muszę wdrażania JAX-WS i powinien być jeden IBM. IBM JAX-WS tylko wydaje się obsługiwać Basic AUTH. Nie rozumiem, jak współpraca między Microsoft WS nie jest ważna dla IBM.
Referencje
Authenticator conf:
https://stackoverflow.com/a/5994706/14811
Dzięki z góry!
Nie wybieram do NTLMv2, do którego firma się udaje. WS-Security jest warstwą nad protokołem transportowym. NTLMv2 działa w warstwie transportowej, więc nie mogę korzystać z WS-Security. Kerberos jest lepszym wyborem niż NTLMv2, ale nie pozwala na równoważenie obciążenia przez DNS, ponieważ jest odporny na atak Man-In-the-Middle. W tym przypadku docelowy adres IP może się zmienić. NTLMv2 jest bezpieczny, nie potrzebujemy Kerberos. Przetestowałem kilka stosów WS (Axis2, IBM JAX-WS, Spring WS) ze strategią Authenticator i wszyscy tego unikali. Ale dokument Authenticator mówi, że każdy dostęp do sieci powinien szukać poświadczeń. –
O Authenticator. Stworzyłem mały program, który ustawia Authenticator i wywołuje WS. Jeśli uruchomię ten program wewnątrz RAD, zawiedzie, jeśli uruchomisz go z wiersza poleceń, wywoła Authenticator, aby uzyskać referencje i działa dobrze. Nie wiem dlaczego. –