/ / Implementácia tichého prihlásenia NTLM s Java - ntlmv2

Implementácia NTLM tichého prihlásenia s Java - ntlmv2

Dúfať, že niekto môže napraviť moju naivitu, pokiaľ ide o volanie jednoduchej adresy URL do aplikácie (ktorá vracia XML) pomocou NTLMv2.

Čítal som skoro každú otázku a stránkutam je, ale ja som odišiel s jednou prvou zvedavosťou. V súčasnosti používam HTTPClient (hoci to možno zmeniť) spolu s najnovším JDK (v čase písania).

Tu je príklad stránky, ktorá sa javí ako volanie knižnice JCIFS: http://hc.apache.org/httpcomponents-client-ga/ntlm.html

Všetko vyzerá dobre, aj keď mätúce, ale to zdôrazňuje otázku, že mnohé z príkladov, ktoré som videl, vyvolávajú - otázku poskytovania NTCredentials.

Pre mňa je celá myšlienka NTLM taká, že nieposkytnúť poverenia. Cieľová aplikácia je nastavená tak, aby používala NTLM, takže by sa určite mali používať používateľské kredity aktuálne prihláseného používateľa? Prečo by som mal sám dodávať nejaké poverenia?

Ospravedlňujeme sa, ak mi niečo chýba. Potrebujem len najzákladnejšie pre NTLM SSO možné pomocou Java. Nezaujíma ma, aká verzia toho, čo som mohol, som schopný použiť čokoľvek.

Držať nádej! Vďaka za prečítanie.

odpovede:

0 pre odpoveď č. 1

Bohužiaľ, existuje spôsob, ako urobiť jednotné prihlásenie v čistom prostredí Java.

NTLM nie je riešením pre priame prihlásenie. NTLM je mechanizmus overovania výziev / odpovedí a vyžaduje NTLM hash hesla užívateľa. Stroje Windows sú schopné poskytovať jednotné prihlasovanie pomocou NTLM, pretože NTLM hash pretrváva. výzva založená na pretrvávajúcom hash.

Bez prístupu k tomuto hash (a podľa môjho vedomia, môžete "t jednoducho požiadať o to), musíte vypočítať sám. A to vyžaduje mať užívateľské heslo.

Podobne môžete vykonať jednotné prihlásenie pomocou aVstupenka Kerberos s použitím autentifikácie SPNEGO (ak je vzdialený systém nastavený na podporu, samozrejme), ale Java bohužiaľ reimplementovala Kerberos namiesto používania systémových knižníc Kerberos. Takže aj keď ste už boli prihlásení do domény, musíte ísť na iný lístok Kerberos pre Javu a to znamená, že znova zadáte svoje heslo.

Jediný realistický spôsob, ako sa vyhnúť zadávaniu hesla na overenie, je vyvolať natívne metódy. V systéme Windows je to SSPI, ktorý vám poskytne možnosť reagovať na výzvu NTLM alebo SPNEGO. Na platformách, ktoré nie sú v systéme Windows, sa to rieši veľmi podobným spôsobom GSSAPI a poskytuje schopnosť odpovedať na SPNEGO (Kerberos).