2009-08-14 22 views
34

मैं एक HTTP प्रॉक्सी के साथ एक कॉर्पोरेट विंडोज नेटवर्क (जो मैं लॉग इन करता हूं) पर काम करता हूं। जब मैं इंटरनेट एक्सप्लोरर का उपयोग करता हूं तो यह मेरे पासवर्ड में टाइप करने की आवश्यकता के बिना जादुई रूप से प्रॉक्सी का उपयोग करता है। कुछ अन्य प्रोग्राम इसे प्रबंधित करने लगते हैं, जैसे जावावेबस्टार्ट में "ब्राउज़र सेटिंग्स का उपयोग करें" विकल्प है।एनटीएलएम प्रॉक्सी पासवर्ड के बिना?

हालांकि जब मैं http से सामग्री लाने के लिए कर्ल या wget जैसे स्क्रिप्ट/प्रोग्राम का उपयोग करता हूं, या इसे अपने जावा कोड में करता हूं तो मुझे लगता है कि मेरा पासवर्ड कहीं भी संग्रहीत होना आवश्यक है, जो स्पष्ट रूप से सुरक्षा के लिए सबसे अच्छा नहीं है।

मैं कैसे पासवर्ड से कम पहुँच कि इंटरनेट एक्सप्लोरर एक कार्यक्रम संबंधी रास्ते में है मिल सकता है?

मैं बहस कर रहा हूं कि यह एक स्टैक ओवरफ्लो प्रश्न है क्योंकि मैं प्रोग्रामर हूं और मुझे पासवर्ड में टाइप किए बिना काम करने के लिए अपने प्रोग्राम/स्क्रिप्ट की आवश्यकता है, हालांकि मैं देख सकता हूं कि अन्य लोग सोच सकते हैं कि यह सर्वर फॉल्ट/सुपर उपयोगकर्ता।

मैं कर्ल में --proxy-ntlm की तरह सेटिंग्स के बारे में पता है, लेकिन यह अभी भी एक ntlm उपयोगकर्ता नाम और पासवर्ड की आवश्यकता है।

+1

इस महान पोस्ट के लिए धन्यवाद देने के लिए मैंने यहां अंततः यहां पंजीकरण किया। धन्यवाद! यह अच्छा होगा अगर ओपी-केवल धागे हमेशा के लिए गायब हो जाते हैं ... मैं उन्हें नफरत करता हूं। असल में, मैं libcurl जानकारी की तलाश में था, कर्ल उपयोग नहीं, लेकिन आपके एसएसपीआई संकेत ने मुझे सही दिशा दी। उन लोगों के लिए जो आपके ऐप में एसएसपीआई के साथ एनटीएलएम ऑथ को सक्षम करने में रुचि रखते हैं: 1) libcurl स्रोतों को डाउनलोड करें 2) सामान्य के रूप में ओपन .dsw फ़ाइल खोलें 3) 'libcurl' 3 के लिए प्रोजेक्ट सेटिंग्स में अपनी प्रीप्रोसेसर परिभाषाओं में यूएसE_WINDOWS_SSPI मैक्रो जोड़ें) समाधान बनाएं, फिर, प्रोग्राम में, आप –

उत्तर

44

यहाँ किसी और से एक जवाब के अभाव में मैं क्या खोज की है, मुझे आशा है कि यह किसी और के लिए उपयोगी है।

कार्यकारी सारांश: http://curl.haxx.se/latest.cgi?curl=win32-ssl से

  1. डाउनलोड SSPI कर्ल सक्षम Windows के लिए बदल रहा है, ज़िप, एसएसएल सक्षम, SSPI सक्षम (7.19.5)
  2. http://www.slproweb.com/products/Win32OpenSSL.html से विंडोज ओपन-एसएसएल स्थापित करें और अपनी बैंडविड्थ लागत का समर्थन करने के लिए दान करें।
  3. यदि आपको उनकी आवश्यकता है तो Visual C++ 2008 redistributables इंस्टॉल करें। curl.exe -U : --proxy-ntlm --proxy myproxy.com:8080 http://www.google.com

अधिक विस्तृत विवरण

Windows लॉगिन प्रणाली का उपयोग कर प्रमाणीकरण के लिए जादू वाक्यांश SSPI है:

  • उपयोग कर्ल पृष्ठ लाने में। यह एक अच्छा गूगल खोज वाक्यांश देता है। मुझे अभी भी जावा या wget में HTTP प्रॉक्सी प्रमाणीकरण के लिए एसएसपीआई का उपयोग करने का एक अच्छा तरीका नहीं मिला है।

    हालांकि, curl (the download tool) एसएसपीआई का समर्थन करता है लेकिन केवल कुछ निर्माण में। दुर्भाग्यवश डिफ़ॉल्ट साइगविन बिल्ड उनमें से एक नहीं है।

    curl -v -V 
    

    SSPI समर्थित है, तो यह सुविधाओं लाइन में उल्लेख किया जाएगा: आप कर्ल के अपने निर्माण वर्बोज़ संस्करण जानकारी हो रही द्वारा SSPI का समर्थन करता है, तो पता लगा सकते हैं।

    एक विंडोज़ संस्करण SSPI समर्थित मैं http://curl.haxx.se/latest.cgi?curl=win32-ssl पर जाने के लिए और उसके बाद विंडोज के लिए डाउनलोड पसंद बदल था प्राप्त करने के लिए, ज़िप, एसएसएल सक्षम, SSPI सक्षम (7.19.5)। जब तक आप इसे पढ़ते हैं तो संस्करण संख्या बदल सकती है।

    यह तब कमांड लाइन से चुपचाप विफल रहा। जब मैं विंडोज एक्सप्लोरर से भाग गया तो मुझे एक लापता libeay32.dll के बारे में एक संदेश मिला। विंडोज़ से इसे प्राप्त करने का एक तरीका openssl.org पर windows version पर एकमात्र लिंक से है। इस के निर्माता बैंडविड्थ लागत को कवर करने के लिए दान का अनुरोध करते हैं।एक और तरीका स्रोत से अपना खुद का निर्माण करना होगा।

    और यह सब है कि कर्ल के बाद निम्न आदेश पंक्ति के साथ काम किया:

    curl.exe -U : --proxy-ntlm --proxy myproxy.com:8080 http://www.google.com 
    

    -U : कोई पासवर्ड, अन्य कमांडलाइन विकल्पों प्रॉक्सी की स्थापना कॉन्फ़िगर करता है। आपको शायद अपनी प्रॉक्सी और पोर्ट सेटिंग्स बदलनी पड़ेगी।

    यह सब बहुत आसान होगा अगर सिगविन के कर्ल रिलीज ने एसएसपीआई का समर्थन किया हो। मैं अब इसके लिए अनुरोध में जा रहा हूं।

  • +1

    आहा में CURLAUTH_NTLM के साथ केवल खाली उपयोगकर्ता प्रमाण-पत्र सेट कर सकते हैं! मेरे लिए कुंजी '-U:' विकल्प था। –

    +1

    @ निकफ़ोर्टस्क्यू: क्या आपको कोई उपयोगिता पता है, जो स्थानीय प्रॉक्सी के रूप में कार्य कर सकता है और एनटीएलएम के माध्यम से कॉर्पोरेट प्रॉक्सी को प्रमाणित कर सकता है? (इस प्रकार स्थानीय उपयोगिताओं को अनुमति देता है जो प्रमाणीकरण के बिना पारदर्शी रूप से इंटरनेट का उपयोग करने के लिए इसका समर्थन नहीं करते हैं)? एनटीएलएम के साथ लॉग इन उपयोगकर्ता के क्रेडेंशियल्स का उपयोग करने के लिए '-u:' का उपयोग करने के संकेत के लिए धन्यवाद –

    +1

    +1। – wilx

    7

    कृपया ध्यान दें कि मेरे संपादन में -यू और -यू के बारे में एक गलत धारणा है। मैं एक सुधार प्रस्तुत किया है, लेकिन अंतरिम नोट में:

    curl -U = Authentication to a proxy 
    curl -u = Authentication to a server 
    

    इसलिए, पहले आदेश होना चाहिए:

    curl.exe -U : --proxy-ntlm --proxy myproxy.com:8080 http://www.google.com 
    

    और दूसरा एक, पारदर्शी NTLM के लिए उदाहरण में:

    curl -v -u : --ntlm [the redirection URL from Location: header] 
    

    इसके बारे में क्षमा करें!

    +0

    तो आप कह रहे हैं कि वर्तमान में स्वीकृत उत्तर में किए गए संपादन में गलत था? – psubsee2003

    +0

    ठीक है, हाँ, और मैंने इसमें दूसरा सुधार प्रस्तुत किया है लेकिन ऐसा लगता है कि कहीं कहीं अटक गया है या खो गया है ...:/ ऐसा लगता है कि मैं जो व्यवहार देख रहा था उसके पीछे एक और जटिल कारण है। मुझे क्या करना चाहिए, मेरी बिट को हटा दें, और विस्तारित उत्तर में जोड़ें कि आपको कभी-कभी ऐसा करने की ज़रूरत क्यों होती है ... मैं अगले कुछ दिनों में उसमें घूमूंगा। – macartm

    +1

    संपादन वास्तव में अस्वीकार कर दिया गया था ... आमतौर पर उन कोडों या संपादनों को संपादित करता है जो महत्वपूर्ण रूप से उत्तर बदलते हैं (आपके संपादन दोनों ने किया)। यदि आप गलत जवाब देखते हैं तो उचित कार्रवाई एक टिप्पणी छोड़ना है कि आपको यह क्यों लगता है कि यह गलत है। अगर उत्तर पोस्टर सहमत होता है, तो वह उसे बदल देगा। मैं आपके मूल संपादन को वापस रोल करूंगा – psubsee2003

    2

    थोड़ी देर हो सकती है लेकिन फिर भी इसका उल्लेख करना चाहता था। मूल प्रश्न सामान्य रूप से विंडोज़ पर पासवर्ड के बिना एनटीएलएम प्रॉक्सी ऑथ के बारे में पूछ रहा है जहां उपयोगकर्ता पहले ही लॉग इन कर चुका है। इसमें कोई संदेह नहीं है कि कर्ल ऐसा कर सकता है लेकिन मैं एक और विकल्प देना चाहता था।

    एनटीएलएमपीएस और सीएनटीएलएम प्रॉक्सी हैं जो एनटीएलएम ऑथ को मध्यस्थ प्रॉक्सी के रूप में करते हैं। हालांकि, उन्हें दोनों को उपयोगकर्ता/पास की आवश्यकता होती है क्योंकि वे ज्यादातर लिनक्स उपयोगकर्ताओं के लिए लक्षित होते हैं। मैंने ऐतिहासिक रूप से विंडोज़ पर इन उपकरणों का उपयोग किया लेकिन उन्हें प्रमाण-पत्र प्रदान करने की एक ही आवश्यकता से नाराज था।

    नतीजतन, मैंने Px for Windows लिखा है जो उपर्युक्त दो की तरह एक HTTP प्रॉक्सी है, लेकिन कॉर्पोरेट प्रॉक्सी के साथ आवश्यक प्रमाणीकरण को प्रबंधित करने के लिए एसएसपीआई का उपयोग करता है। आपको कॉन्फ़िगर करने की आवश्यकता है प्रॉक्सी सर्वर और पोर्ट। यह मौजूदा अनुप्रयोगों के लिए मदद करता है जो उदाहरण के लिए पीटी और एनपीएम जैसे एनटीएलएम प्रॉक्सी के माध्यम से बात नहीं कर सकते हैं।

    अपने स्वयं के ऐप्स विकसित करने के लिए, कोड को यह समझने में भी मदद करनी चाहिए कि पाइथन के भीतर ऐसा कैसे किया जाए और शायद ऐसी भाषाएं जिनमें एसएसपीआई तक पहुंच हो।

    संबंधित मुद्दे