IIS प्रमाणीकरण NTLM और ASP.NET प्रतिरूपण के साथ वेबपृष्ठों का लोड संतुलन

द्वारा प्रकाशित किया गया था Zevenet | 2 अगस्त, 2018

अवलोकन

Microsoft वेब सर्वर, इंटरनेट सूचना सेवा (IIS), सक्रिय निर्देशिका या स्टैंड-अलोन (LDAP आधारित प्रमाणीकरण) सिस्टम के विरुद्ध उपयोगकर्ताओं को मान्य करने के लिए कई प्रमाणीकरण तंत्रों को एकीकृत करता है। NTLM विंडोज चैलेंज / रिस्पॉन्स ऑथेंटिकेशन प्रोटोकॉल है, जिसका उपयोग नेटवर्क और एप्लिकेशन में किया जा सकता है, जो दोनों वातावरणों में उपयोग किए जा सकते हैं।

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

ASP.NET प्रतिरूपण Microsoft IIS पर निर्भर उपयोगकर्ताओं को प्रमाणित और अधिकृत करने के लिए वेब एप्लिकेशन को अनुमति देता है।

इस लेख में हम यह बताने जा रहे हैं कि गैर-संवादात्मक उपयोगकर्ताओं के प्रमाणीकरण परिदृश्यों के लिए NTLM प्रोटोकॉल को एकीकृत करने वाले संतुलन अनुप्रयोगों को कैसे लोड किया जाए।

NTLM कैसे काम करता है?

NTLM प्रोटोकॉल HTTP / S प्रोटोकॉल पर निर्भर करता है, जहाँ एक दिया गया ग्राहक प्रमाणित सत्र को स्थापित करने के लिए कुल 6 चरणों का एक हाथ मिलाना शुरू करता है।

प्रमाणित सत्र हैंडशेक के लिए निम्न चरणों की आवश्यकता होती है:

1. ग्राहक एक वेब सर्वर के लिए एक निश्चित संसाधन का एक अनाम अनुरोध शुरू करता है।

GET / HTTP

2. एक गैर-अधिकृत संदेश और ग्राहक द्वारा उपयोग की जाने वाली प्रमाणीकरण विधि के साथ सर्वर प्रतिक्रियाएं।

401 Unauthorized
WWW-Authenticate: NTLM

3. क्लाइंट NTLM प्रारूप प्रमाणीकरण चुनौती सहित अनुरोध का समाधान करता है।

GET / HTTP
Authorization: NTLM <base64-encoded first NTLM message>

4. एक गैर-अधिकृत संदेश के साथ सर्वर प्रतिक्रिया करता है और ग्राहक को अधिक जानकारी के लिए अनुरोध करता है।

401 Unauthorized
WWW-Authenticate: NTLM <base64-encoded second NTLM message>

5. ग्राहक सत्र की शेष जानकारी सहित अनुरोध का समाधान करता है।

GET / HTTP
Authorization: NTLM <base64-encoded third NTLM message>

6. सर्वर प्रमाणीकरण अनुरोध को पूरा करने के लिए डोमेन नियंत्रक से जुड़ता है और फिर ग्राहक को प्रमाणीकरण की पुष्टि करता है।

HTTP 200 OK

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

NTLM प्रमाणीकरण का उपयोग करके शेष वेब अनुप्रयोगों को कैसे लोड करें?

Zevenet के साथ, एक सरल परत 2 टीसीपी लोड बैलेंसर के साथ या उन्नत सुविधाओं के लिए एक परत 4 प्रॉक्सी के साथ उच्च उपलब्धता में शेष राशि को लोड करने और NTLM आधारित वेब अनुप्रयोग बनाने के लिए 7 मुख्य तरीके हैं।

सरल NTLM लोड संतुलन 4 पर

एक साधारण विन्यास के साथ NTLM प्रमाणीकरण समर्थन के साथ संतुलन वेब अनुप्रयोगों को लोड करने के लिए, हम L4xNAT प्रोफ़ाइल के साथ LSLB आधारित फ़ार्म बना सकते हैं। हम HTTP या HTTPS प्रोटोकॉल का उपयोग कर सकते हैं।

फिर, वैश्विक कॉन्फ़िगरेशन में सुनिश्चित करें कि उपयोग किया गया प्रोटोकॉल है टीसीपी लेकिन हम चयन कर सकते हैं NAT or DNAT आवश्यक टोपोलॉजी के अनुसार।

में सेवा अनुभाग, यह सुनिश्चित करने के लिए दृढ़ता निर्धारित करना आवश्यक है कि एक निश्चित ग्राहक के लिए प्रमाणीकरण हमेशा एक ही बैकएंड पर जाता है, अन्यथा कनेक्शन प्रमाणीकरण नहीं किया जा सकता है।

अंत में, बैकएंड की अपनी सूची में जोड़ें और नीचे दिए गए अनुभागों में संकेतित स्वास्थ्य जांच को कॉन्फ़िगर करें।

NTLM लोड संतुलन 7 पर

यह विकल्प LSLB मॉड्यूल और HTTP फार्म के माध्यम से कॉन्फ़िगर की गई परत 7 प्रॉक्सी के साथ NTLM समर्थन के साथ HTTP / S डेटा को संभालने की अनुमति देता है। इसके लिए, हमें आभासी सेवा के लिए एसएसएल आवश्यकताओं के अनुसार HTTP या HTTPS के लिए एक खेत बनाने की आवश्यकता है। फर्क सिर्फ इतना होगा श्रोता में कॉन्फ़िगर किया गया वैश्विक व्यवस्था बनाए गए खेत की।

इस स्तर पर, क्योंकि आवेदन अभी तक किसी भी सत्र कुकी को बनाने में सक्षम नहीं है, ताकि दृढ़ता या कनेक्शन की पिनिंग बनाई जा सके, हम इसका उपयोग कर सकते हैं कुकी सम्मिलन वह विकल्प जो NTLM प्रमाणीकरण के प्रारंभिक हैंडशेक के दौरान एक नया कुकी बनाने के लिए लोड बैलेंसर को अनुमति देता है।

अंत में, बैकएंड की अपनी सूची में जोड़ें और नीचे दिए गए अनुभागों में संकेतित स्वास्थ्य जांच को कॉन्फ़िगर करें। आप इस तरह के खेत में शामिल प्रॉक्सी स्तर पर अतिरिक्त एप्लिकेशन विकल्पों को कॉन्फ़िगर कर सकते हैं और NTLM समर्थन प्रभावित नहीं होगा।

एनटीएलएम प्रमाणीकरण वेबसाइटों के लिए उन्नत स्वास्थ्य जांच

एनटीएलएम प्रमाणीकृत अनुप्रयोगों के लिए हमारी कस्टम उन्नत स्वास्थ्य जांच बनाने के लिए, हमें पथ के तहत बनाना होगा / Usr / स्थानीय / zevenet / ऐप्स / libexec एक स्क्रिप्ट बैकएंड की जांच करने के लिए जैसे कि यह नीचे दिखाया गया है। उदाहरण के लिए, check_ntlm.sh उपयुक्त अनुमतियों के साथ।

#!/bin/bash

# get input parameters
BACKEND=$1
PORT=$2
USER=$3
PASS=$4
URI=$5
STRING=$6

/usr/bin/curl http://${BACKEND}:${PORT}${URI} --ntlm -negotiate -u ${USER}:${PASS} 2>/dev/null | grep "${STRING}" &>/dev/null

if [ $? == 0 ]
then
	# if the curl command doesn't fail then notify that the backend is up
	echo "Server ${BACKEND}:${PORT} OK"
	exit 0
fi

# if the the curl command fails then notify that the backend is down
echo "Server ${BACKEND}:${PORT} is not OK"
exit 1

में निगरानी >> फार्मगार्डियन अनुभाग, यदि लागू होता है, या खेत सेवा में जांच करने के लिए इसे कमांड में जोड़ता है।

हम निष्पादित करके स्वास्थ्य जांच स्क्रिप्ट का परीक्षण कर सकते हैं:

/usr/local/zevenet/app/libexec/check_ntlm.sh 192.168.0.99 80 johndoe johnsecret "/my/uri" "DOCTYPE html"

यह जानते हुए कि बैकएंड आईपी है 192.168.0.99 बंदरगाह है 80 एचटीटीपी, सौरभ हमारे डोमेन में एक डमी उपयोगकर्ता है, johnsecret डमी पासवर्ड है, "/ मेरी / uri" जाँच करने के लिए URI है और "DOCTYPE html" अनुरोध के सफल होने पर प्रतिक्रिया डेटा में खोजने के लिए स्ट्रिंग है।

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

जब हमारे स्वास्थ्य की जांच कमांड लाइन और तैयार से जांच की जाती है, तो हम इसे NTLM समर्थन के साथ कॉन्फ़िगर किए गए खेतों में असाइन कर सकते हैं।

अपने लोड संतुलित NTLM वेब एप्लिकेशन का आनंद लें!

पर साझा करें:

GNU फ्री डॉक्यूमेंटेशन लाइसेंस की शर्तों के तहत प्रलेखन।

क्या यह लेख सहायक था?

संबंधित आलेख