MacOS पर प्रॉक्सी क्रेडेंशियल्स को कैसे स्टोर करें ताकि वे सिस्टम सेवाओं द्वारा उपयोग किए जाएं?


14

मैं एक कॉर्पोरेट NTLM प्रॉक्सी के पीछे macOS Sierra 10.12.6 का उपयोग कर रहा हूं। मेरा ब्राउज़र और अन्य एप्लिकेशन सिस्टम प्रॉक्सी सेटिंग्स का उपयोग कर रहे हैं, जिसमें मैंने प्रॉक्सी के साथ प्रमाणित करने के लिए अपना उपयोगकर्ता नाम और पासवर्ड सहेज लिया है। यह ठीक काम कर रहा है।

सिस्टम सेवाओं के साथ एक लगातार समस्या है जो इंटरनेट पर जानकारी तक पहुंचने का प्रयास करती है और मेरे उपयोगकर्ता खाते में प्रॉक्सी क्रेडेंशियल्स तक पहुंच नहीं है। मैं हर दो मिनट में निम्नलिखित पॉपअप देखता हूं, और जो कुछ भी करता हूं (सिस्टम प्रेफरेंस में अपनी साख को अपडेट करता हूं, या "अभी नहीं" दबाता हूं), पॉपअप बार-बार आता रहता है:

प्रॉक्सी प्रमाणीकरण आवश्यक है

पॉपअप में पाठ पढ़ता है:

प्रॉक्सी प्रमाणीकरण आवश्यक है

सिस्टम प्रिफरेंस में HTTP प्रॉक्सी http://xxx.xxx.xxx.xxx:yyy के लिए पासवर्ड डालें ।

मैं इस पॉपअप को प्रदर्शित होने से रोकने के लिए क्या कर सकता हूं?

मैंने अब तक जिन चीजों की कोशिश की है:

  • सिस्टम वरीयताएँ ( नेटवर्क> उन्नत> प्रॉक्सी ) में मेरी साख अपडेट की गई
  • जबसे मैंने ब्लॉग पोस्ट या फ़ोरम प्रश्न में उसके लिए एक सिफारिश पढ़ी है, तब मैंने अपने लॉग इन कीचेन से क्रेडेंशियल प्रविष्टियों को सिस्टम किचेन में दर्ज किया है।

इनमें से किसी ने भी काम नहीं किया है, मुझे हर दो मिनट में यह पॉपअप मिलता है, और जब यह दिखाई देता है तो कोई पैटर्न नहीं लगता है।

अपडेट 1:

जैसे ही मैं उपरोक्त संवाद में सिस्टम प्राथमिकताएं बटन पर क्लिक करके अपनी साख दर्ज करता हूं (जिसे मैं उदाहरण के तौर पर सफारी खोलकर और स्थान बॉक्स में एक URL टाइप करना शुरू कर सकता हूं), दो रिकॉर्ड लॉगिन किचेन में बनाए गए हैं , दोनों समान के साथ सामग्री:

@ xxx.xxx.xxx.xxx (उपयोगकर्ता नाम) इंटरनेट पासवर्ड आज, 09:10 - लॉगिन

दोनों अभिलेख समान नाम और विशेषताओं के साथ समान दिखते हैं। दोनों दिखाते हैं कि यह अनुरोध करने वाला एप्लिकेशन है AuthBrokerAgent:

किचेन एक्सेस कंट्रोल

अपडेट 2:

मैंने इस सुझाव को भी आज़माया है: https://discussions.apple.com/message/23848961#message23848961 , लॉगिन कीचेन से प्रमाणीकरण प्रविष्टियों को सिस्टम किचेन में कॉपी करना और फिर रिबूट करना, लेकिन इसे ठीक नहीं किया। वास्तव में, खतरनाक "प्रॉक्सी प्रमाणीकरण आवश्यक" बॉक्स ने इसे टाइप करते हुए फिर से दिखाया ...

अपडेट 3:

मैंने अपनी मशीन और हमारे प्रॉक्सी के बीच के ट्रैफ़िक को देखने के लिए Wireshark का उपयोग किया है:

  • एक साथ प्रॉक्सी रिटर्न 407 Proxy Authentication Requiredऔर Proxy-Authenticate: NTLMहै, जो मेरी उम्मीद के साथ कतार में है, के बाद से हमारे प्रॉक्सी NTLM उपयोग करता है।
  • कुछ उदाहरण मैंने ट्रैफ़िक में देखे हैं (उदाहरण iCloud) फिर एक NTLMSSP_NEGOTIATEप्रतिक्रिया भेजें ।
  • प्रॉक्सी एक NTLMSSP_CHALLENGEअनुरोध के साथ वापस आती है
  • सेवा NTLMSSP_AUTHमेरे और मेरे उपयोगकर्ता नाम के साथ प्रतिक्रिया करती है , जो उसे कहीं से मिलनी चाहिए थी।
  • प्रॉक्सी अंत में एक के साथ प्रतिक्रिया करता है 200 Connection established

मेरे लिए, यह दिखाता है कि सामान्य रूप से प्रॉक्सी प्रमाणीकरण ठीक काम करता है, अगर सिस्टम कहीं से उपयोगकर्ता नाम और प्रॉक्सी प्राप्त कर सकता है। यह सवाल रहता है कि उपयोगकर्ता नाम / पासवर्ड को कैसे स्टोर किया जाए, ताकि सभी सिस्टम सेवाएं इसे पा सकें। कुछ सिस्टम सेवाओं (मुझे लगता है) के पास प्रॉक्सी क्रेडेंशियल्स को खोजने का कोई साधन नहीं है जहां मैं वर्तमान में उन्हें संग्रहीत कर रहा हूं।


संबंधित प्रश्न: apple.stackexchange.com/questions/117556/…
nwinkler

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

1
क्या तुमने कभी इस मुद्दे को हल किया क्योंकि मैं कभी-कभी एक ही समस्या का सामना करता हूं और मैं एक Citrix VPN समाधान से जुड़ रहा हूं। एक बार पॉप-अप दिखाई देने के बाद यह बार-बार होता है और अंततः मेरा AD खाता लॉक हो जाएगा। मुझे अभी तक ऐसा समाधान नहीं मिला है जो इसे हल करे। चूंकि मैं मैकबुक प्रो का उपयोग कर रहा हूं और आईटी विभाग का अधिकांश हिस्सा विंडोज आधारित है इसलिए मैं आईटी से कोई उपयोगी जानकारी प्राप्त करने में असमर्थ रहा हूं। एक बार जब मैं वीपीएन से जुड़ता हूं तो मैं सोलारिस स्पार्क सर्वर पर चलने वाले ओरेकल एप्लिकेशन पर काम कर रहा हूं। मैं वास्तव में आशा करता हूं कि आपको इस मुद्दे को हल करने का एक तरीका मिल जाएगा। स्टेन
स्टेन रिपेटा

क्षमा करें, अभी तक इसके लिए कोई समाधान नहीं मिला है। मैं जो कर रहा हूं वह यह है कि मैं उस विंडो को स्थानांतरित करता हूं जो किसी भी बटन को दबाए बिना स्क्रीन के किनारे पर प्रॉक्सी क्रेडेंशियल्स के लिए पूछती है - जो इसे कम से कम शांत रखता है ...
nwinkler

जवाबों:


9

यदि आपके सिस्टम / नेटवर्क व्यवस्थापक ने प्रॉक्सी बल प्रमाणीकरण को कॉन्फ़िगर किया है, जो कि एक मूल प्रमाणीकरण योजना से अधिक की आवश्यकता है, तो यह सबसे अधिक अपेक्षित व्यवहार है।

HTTP प्रमाणीकरण अनुभाग के अंतर्गत Microsoft के पृष्ठ हैंडलिंग प्रमाणीकरण से :

दो सामान्य प्रकार की प्रमाणीकरण योजनाएँ हैं:

  • बेसिक ऑथेंटिकेशन स्कीम, जहां यूजर नेम और पासवर्ड सर्वर को क्लीयरटेक्स्ट में भेजे जाते हैं।
  • चुनौती-प्रतिक्रिया योजनाएं, जो चुनौती-प्रतिक्रिया प्रारूप के लिए अनुमति देती हैं।

चुनौती-प्रतिक्रिया योजनाएं अधिक सुरक्षित प्रमाणीकरण सक्षम करती हैं। यदि किसी चुनौती-प्रतिक्रिया योजना का उपयोग करते हुए अनुरोध को प्रमाणीकरण की आवश्यकता होती है, तो उपयुक्त स्थिति कोड और प्रमाणीकरण शीर्षलेख क्लाइंट को वापस कर दिए जाते हैं। क्लाइंट को फिर से बातचीत के साथ अनुरोध को फिर से भेजना होगा। सर्वर एक चुनौती के साथ एक उपयुक्त स्थिति कोड लौटाएगा, और ग्राहक को अनुरोधित सेवा प्राप्त करने के लिए उचित प्रतिक्रिया के साथ अनुरोध को फिर से भेजना होगा।

यदि आप जिस प्रॉक्सी का उपयोग कर रहे हैं , वह मूल प्रमाणीकरण योजना का उपयोग करती है , तो आपके किचेन में जो बचा है वह आपको प्रमाणित करने के लिए पर्याप्त होगा। यदि एक चुनौती प्रतिक्रिया योजना का उपयोग किया जा रहा है, तो आपको सबसे अधिक जानकारी प्रदान करनी होगी - इस मामले में - अपने पासवर्ड को फिर से दर्ज करें - प्रमाणित करने के लिए; और यह आप देख रहे हैं।

NTLM प्रमाणीकरण प्रक्रिया

यह सिर्फ साख जमा करने की तुलना में बहुत अधिक है । क्लाइंट को सर्वर से उत्पन्न अनुरोध के आधार पर प्रतिक्रिया उत्पन्न करनी चाहिए । के बाद एक है बहुत संक्षिप्त प्रति ग्राहक / सर्वर के नजरिए से प्रमाणीकरण प्रक्रिया का वर्णन माइक्रोसॉफ्ट के प्रलेखन

  • क्लाइंट यूजर नेम को सर्वर (प्लेनटेक्स्ट में) को भेजता है।
  • सर्वर एक 16-बाइट रैंडम नंबर उत्पन्न करता है, जिसे एक चुनौती या गैर कहा जाता है, और इसे क्लाइंट को भेजता है।
  • क्लाइंट इस चुनौती को उपयोगकर्ता के पासवर्ड के हैश के साथ एन्क्रिप्ट करता है और सर्वर पर परिणाम लौटाता है। इसे अनुक्रिया कहते हैं।
  • सर्वर डोमेन नियंत्रक के लिए निम्नलिखित तीन आइटम भेजता है:

    • उपयोगकर्ता नाम
    • क्लाइंट को भेजा गया चैलेंज
    • क्लाइंट से रिस्पांस मिला
  • डीसी एन्क्रिप्टेड चुनौती और प्रतिक्रिया को सत्यापित करता है। यदि प्रमाणित हो, तो पहुँच प्रदान की जाती है।

ऊपर तीसरा चरण, क्लाइंट को सर्वर से प्राप्त यादृच्छिक संख्या को हैश करने की आवश्यकता होती है। यह स्वाभाविक रूप से इसका मतलब है कि आपके macOS क्लाइंट पर संग्रहीत होने के लिए कुछ भी नहीं है।

बहुत कम से कम, आपको सक्रिय निर्देशिका डोमेन में शामिल होने की आवश्यकता है। इसका मतलब है कि आपको अपने विशिष्ट संगठन के लिए ठीक से सक्षम और कॉन्फ़िगर किए गए Kerberos समर्थन की आवश्यकता है।

ऊपर दिए गए "हैंडलिंग ऑथेंटिकेशन" दस्तावेज़ में एक महत्वपूर्ण वाक्यांश है:

यदि प्रमाणीकरण आवश्यक है, तो HttpOpenRequest को कॉल में INTERNET_FLAG_KEEP_CONNECTION ध्वज का उपयोग किया जाना चाहिए। प्रमाणीकरण प्रक्रिया को पूरा करते समय कनेक्शन बनाए रखने के लिए NTNET और अन्य प्रकार के प्रमाणीकरण के लिए INTERNET_FLAG_KEEP_CONNECTION ध्वज आवश्यक है। यदि कनेक्शन बनाए नहीं रखा गया है, तो प्रमाणीकरण प्रक्रिया को प्रॉक्सी या सर्वर के साथ फिर से शुरू करना होगा।

(जोर मेरा)

आपके द्वारा प्रस्तुत किए जा रहे लक्षणों के आधार पर यह प्रतीत होता है कि आपके संगठन को प्रॉक्सी को प्रमाणीकरण की आवश्यकता है; आपका उपयोगकर्ता नाम / पासवर्ड मान्य है, लेकिन यह प्रमाणीकरण के लिए पूछता (पुनः) रखता है। यह शायद इसलिए है क्योंकि आप कनेक्शन स्थिति खो रहे हैं और इसे फिर से करना है। जो बात को और बल देता है…।

इस समस्या को हल करने के लिए, आपको प्रमाणीकरण मुद्दों के साथ सहायता के लिए अपने नेटवर्क व्यवस्थापक से संपर्क करना होगा।


1
मैं कैसे पता लगा सकता हूं कि किस प्रमाणीकरण योजना का उपयोग किया जा रहा है? क्या कोई HTTP हेडर है जिसे मैं देख सकता हूं जब कोई एप्लिकेशन प्रॉक्सी से बात कर रहा हो? क्या मैं क्रोम के नेटवर्क कंसोल में ऐसा कर सकता हूं, या क्या मुझे कुछ ऐसा उपयोग करना है जैसे कि विंडसर्क?
nwinkler

संभावना से अधिक, आपको Wireshark का उपयोग करने की आवश्यकता होगी। ध्यान रखें, यह एन्क्रिप्टेड ट्रैफ़िक भी हो सकता है।
एलन

1
मैंने कुछ जानकारी Wireshark में जो देखी है उससे मैंने कुछ जानकारी जोड़ी है।
nwinkler

1
अपने जवाब में NTLM पर अधिक जानकारी जोड़ने के लिए धन्यवाद। मैं NTLM को समझता हूं, और मैं विंडसर आउटपुट से जो देख सकता हूं, वह काम कर रहा है - आपके द्वारा वर्णित चुनौती / प्रतिक्रिया हो रही है, जैसे ड्रॉपबॉक्स या आईक्लाउड सेवाओं के लिए। मुझे अभी भी यकीन नहीं है कि कौन सी सेवा बार-बार प्रॉक्सी क्रेडेंशियल संवादों को पॉप अप कर रही है। आपके उत्तर में बहुत सारी जानकारी है, लेकिन वास्तव में अब तक मेरी मदद नहीं की है।
nwinkler

1
Connection Established! = Access Granted। जो लोग इस बात की पुष्टि कर सकते हैं कि यह काम कर रहा है, आपके आईटी विभाग में आपका सिस्टम / नेटवर्क एडमिन है।
एलन

1

नोट: सभी एप्लिकेशन को प्रॉक्सी का उपयोग करने की अनुमति देने के लिए रेडियो बटन की जांच करें

कुंजी श्रृंखला एप्लिकेशन के प्रमाणीकरण द्वारा सेटिंग को संशोधित करें


-2

निम्न कमांड से चलाएँ Console.app:

networksetup -setwebproxy "Your Interface Name" "web proxy hostname or IP" 
8080 on username password

आपसे किचेन एक्सेस के बारे में पूछा जाएगा। कीचेन में रिकॉर्ड जोड़ने के लिए सहमत हों और आपके किचेन के खुले रहने पर आपके पास हर समय पासवर्ड के बिना पहुंच होगी


1
मैंने यह कोशिश की है, लेकिन यह समस्या को ठीक नहीं करता है। कमांड मेरे उपयोगकर्ता के लिए प्रॉक्सी कॉन्फिगरेशन सेट करता है, और मेरे उपयोगकर्ता के loginकिचेन में प्रमाणीकरण संग्रहीत करता है । मेरे द्वारा ऐसा करने के ठीक बाद, प्रॉक्सी प्रमाणीकरण संवाद जो मैं ऊपर दिखाता हूं, फिर से पॉप अप हुआ। आपके सुझाए गए फिक्स मेरे लिए समस्या को ठीक नहीं करते हैं।
nwinkler

क्योंकि आपका लॉगिन चाबी का गुच्छा बंद है या आपके पास दोहरा रिकॉर्ड है
Siarhei Karatkevich

1
लॉगिन किचेन अनलॉक किया गया है, मैंने उसे डबल-चेक किया। यद्यपि दोहरे रिकॉर्ड के बारे में बात मान्य हो सकती है। मैंने प्रॉक्सी प्रमाणीकरण के लिए सभी रिकॉर्ड हटा दिए, जो मुझे लॉगिन और सिस्टम किचेन में मिले थे, लेकिन जैसे ही मैं अपने मूल पोस्ट में एक बार डायलॉग में अपना पासवर्ड टाइप करता हूं, मैं लॉगिन किचेन में दो रिकॉर्ड के साथ समाप्त होता हूं, दोनों बिल्कुल वही डेटा। यदि मैं एक हटाता हूं, तो जब मैं फिर से अपनी साख दर्ज करता हूं तो यह वापस आ जाता है।
nwinkler

1
मैंने securityआपके द्वारा सूचीबद्ध कमांड की कोशिश की - यह कुछ भी नहीं पाता है। यह तब होता है जब मैं find-generic-passwordकमांड को बदल देता हूं find-internet-password, चूंकि किचेन "इंटरनेट पासवर्ड" के रूप में प्रविष्टि को सूचीबद्ध करता है।
nwinkler

1
प्रॉक्सी URL को xxx.xxx.xxx.xxx के रूप में सेट किया गया है , यह उसी तरह है जैसे यह कमांड लाइन से काम कर रहा है। मैं Wireshark का उपयोग करके कुछ पकड़ने की कोशिश करूँगा।
nwinkler
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.