Windows Server 2012 R2 चलाने वाली IIS वेबसाइट पर पारदर्शी SSO (एकल साइन-ऑन) Kerberos डोमेन उपयोगकर्ता प्रमाणीकरण को कॉन्फ़िगर करने के तरीके के बारे में चरण-दर-चरण मार्गदर्शिका यहां दी गई है।
अपने वेब सर्वर पर IIS प्रबंधक प्रारंभ करें, आवश्यक वेबसाइट का चयन करें और प्रमाणीकरण . पर जाएं अनुभाग। जैसा कि आप देख सकते हैं, केवल गुमनाम प्रमाणीकरण डिफ़ॉल्ट रूप से सक्षम है। इसे अक्षम करें और सक्षम करें Windows प्रमाणीकरण ( सबसे पहले IIS हमेशा अनाम प्रमाणीकरण करने की कोशिश करता है)।
Windows प्रमाणीकरण के लिए उपलब्ध प्रदाताओं की सूची खोलें (प्रदाता ) डिफ़ॉल्ट रूप से, दो प्रदाता उपलब्ध हैं:बातचीत करें और NTLM . नेगोशिएट एक कंटेनर है जो केर्बेरोज को पहली प्रमाणीकरण विधि के रूप में उपयोग करता है, और यदि प्रमाणीकरण विफल हो जाता है, तो एनटीएलएम का उपयोग किया जाता है। यह आवश्यक है कि बातचीत करें प्रदाताओं की सूची में पहले स्थान पर आता है।
अगले चरण में सेवा प्रधान नाम (SPN) . का पंजीकरण शामिल है वेबसाइट के नाम के लिए प्रविष्टियां, जिन्हें उपयोगकर्ताओं द्वारा एक्सेस किया जाएगा। यदि IIS वेबसाइट केवल उस सर्वर के नाम से उपलब्ध होनी चाहिए, जिस पर वह स्थित है (https://server-name या https://server-name.adatum.loc ), आपको अतिरिक्त SPN प्रविष्टियाँ बनाने की आवश्यकता नहीं है (SPN प्रविष्टियाँ AD में सर्वर खाते में पहले से मौजूद हैं)। यदि वेबसाइट का पता होस्ट नाम से भिन्न है या यदि आप लोड संतुलन के साथ वेबफार्म बना रहे हैं, तो आपको सर्वर या उपयोगकर्ता खाते में अतिरिक्त एसपीएन प्रविष्टियां जोड़नी होंगी।
मान लीजिए, हमारे पास आईआईएस सर्वर का एक फार्म है। इस मामले में, एक अलग एडी खाता बनाना और एसपीएन प्रविष्टियों को इसमें बांधना बेहतर है। हमारी वेबसाइट का लक्षित एप्लिकेशन पूल इसी खाते से शुरू किया जाएगा।
एक डोमेन खाता बनाएं iis_service . सुनिश्चित करें कि इस ऑब्जेक्ट के लिए SPN प्रविष्टियाँ असाइन नहीं की गई हैं (servicePrincipalName विशेषता खाली है)।
मान लीजिए, कि वेबसाइट को https://webportal . पर जवाब देना है और https://webportal.adatum.loc . हमें इन पतों को सेवा खाते की SPN विशेषता में निर्दिष्ट करना होगा।
Setspn /s HTTP/webportal adatum\iis_service
Setspn /s HTTP/webportal.adatum.loc adatum\iis_service
इस प्रकार, हम इस खाते को केर्बरोस टिकटों को डिक्रिप्ट करने की अनुमति देते हैं, जब उपयोगकर्ता इन पतों तक पहुंचते हैं, और सत्रों को प्रमाणित करते हैं।
आप खाते की एसपीएन सेटिंग इस तरह देख सकते हैं:
setspn /l iis_service
युक्ति . यदि अलग-अलग डोमेन प्रविष्टियों द्वारा समान SPN का उपयोग किया जाता है, तो Kerberos ठीक से काम नहीं करेगा। निम्न आदेश का उपयोग करते हुए, सुनिश्चित करें कि डोमेन में कोई डुप्लिकेट SPN नहीं हैं:
setspn –x
अगला चरण IIS एप्लिकेशन पूल को पहले बनाए गए खाते से लॉन्च करने के लिए कॉन्फ़िगरेशन है।
अपनी वेबसाइट के एप्लिकेशन पूल का चयन करें (हमारे उदाहरण में, यह DefaultAppPool है)।
उन्नत सेटिंगखोलें और पहचान . पर जाएं
इसे ApplicationPoolIdentity . से बदलें करने के लिए adatum\iis_service ।
फिर IIS प्रबंधक में अपनी वेबसाइट पर जाएँ और कॉन्फ़िगरेशन संपादक . चुनें ।
ड्रॉपडाउन मेनू में system.webServer> सुरक्षा> प्रमाणीकरण> windowsप्रमाणीकरण . चुनें
बदलें AppPoolCredentials का उपयोग करें करने के लिए सच .
इस प्रकार हम आईआईएस को ग्राहकों से केर्बेरोज टिकटों को डिक्रिप्ट करने के लिए डोमेन खाते का उपयोग करने की अनुमति देते हैं।
इस आदेश का उपयोग करके IIS रीसेट करें:
iisreset
इसे सभी वेब फ़ार्म सर्वरों पर कॉन्फ़िगर किया जाना है।
आइए Kerberos प्रमाणीकरण का परीक्षण करें। ऐसा करने के लिए, क्लाइंट के ब्राउज़र में https://webportal.adatum.loc खोलें।
नोट . मेरे मामले में, मैं IE11 में एक बार में प्रमाणित नहीं कर सका। मुझे विश्वसनीय वेबसाइटों की सूची में पता जोड़ना था और वर्तमान उपयोगकर्ता नाम और पासवर्ड के साथ स्वचालित लॉगऑन निर्दिष्ट करना था। उपयोगकर्ता प्रमाणीकरण -> लॉगऑन . में विश्वसनीय क्षेत्र साइट्स सेटिंग्स में।
आप यह सुनिश्चित कर सकते हैं कि Fiddler का उपयोग करके HTTP ट्रैफ़िक की निगरानी के माध्यम से आपकी वेबसाइट पर Kerberos प्रमाणीकरण का उपयोग किया जाता है (हमने पहले इस टूल का उल्लेख किया था)।
फ़िडलर प्रारंभ करें और ब्राउज़र में लक्ष्य वेबसाइट खोलें। विंडो के बाएँ भाग में, वेबसाइट एक्सेस की लाइन ढूँढें। विंडो के दाहिने हिस्से में इंस्पेक्टर टैब पर जाएं। ऐसा लगता है कि लाइन “प्राधिकरण शीर्षलेख (बातचीत) में Kerberos टिकट शामिल है ” दिखाता है कि IIS वेबसाइट पर प्रमाणित करने के लिए Kerberos का उपयोग किया गया है।