9

मेरे पास एक आईआईएस इंस्टेंस है जो विंडोज प्रमाणीकरण और यूआरएल रिवाइट के साथ कॉन्फ़िगर किया गया है, इसलिए यह मूल रूप से रिवर्स प्रॉक्सी के रूप में काम करता है। मेरा बैकएंड सर्वर (लिनक्स पर चल रहा है) REMOTE_USER शीर्षलेख की अपेक्षा करता है। बैकएंड सर्वर पर प्रमाणीकृत उपयोगकर्ता के बारे में जानकारी पास करने के लिए आईआईएस को कॉन्फ़िगर करना संभव है?आईआईएस के पीछे HTTP सर्वर: पास प्रमाणीकरण शीर्षलेख

उत्तर

8

यदि आईआईएस Windows Auth के लिए कॉन्फ़िगर किया गया है, तो ARR चुनौती देगा और उपयोगकर्ता प्रमाणित होने के बाद केवल अनुरोधों को अग्रेषित करेगा।

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

<rule name="Reverse Proxy to MySite" stopProcessing="true"> 
    <match url="^MySite/(.*)" /> 
    <serverVariables> 
     <set name="HTTP_X_MY_HEADER" value="{LOCAL_ADDR}" /> 
    </serverVariables> 
    <action type="Rewrite" url="http://www.myothersite.com/{R:1}" /> 
</rule> 

दुर्भाग्य से यह एक REMOTE_USER हैडर अग्रेषित करने के लिए इस तकनीक का उपयोग करने के लिए संभव नहीं है। ऐसा इसलिए है क्योंकि Authorization हेडर मौजूद है, प्रमाणीकरण मॉड्यूल चलाने से पहले अनुरोध अग्रेषित किया जाता है, और इसलिए ऑथ सर्वर चर सेट नहीं होते हैं (जब हेडर पर मैप किए जाते हैं तो वे आसानी से रिक्त हो जाते हैं)।

हालांकि आप आईआईएस को Basic Windows Auth का उपयोग करने के लिए सेट कर सकते हैं, और फिर Base64 से यूजरनेम को अपने लिनक्स सर्वर पर Authorization एन्कोडेड से निकालें।

3

मुझे एक ही समस्या है और मैंने सोचा कि मैं उल्लेख करता हूं कि मैं इसके आसपास कैसे काम करने में कामयाब रहा। मैंने Helicon ISAPI-Rewrite 3 Lite स्थापित किया है, जो एक आईएसएपीआई अनुरोध फ़िल्टर है। चूंकि यह पाइपलाइन में प्रमाणीकरण चरण के बाद चलता है, इसके पास REMOTE_USER वैरिएबल तक पहुंच है और अनुरोध को फिर से लिख सकता है जैसे REMOTE_USER के साथ इसके नए मानदंड को इसके मूल्य के रूप में जोड़ा गया है। बेशक यह केवल तभी मदद करता है जब आपके पास बैकएंड सर्वर पर कुछ नियंत्रण हो ताकि आप मूल REMOTE_USER चर के बजाय इस कस्टम शीर्षलेख के मूल्य का उपयोग कर सकें।

में आवश्यक टुकड़ा ISAPI-पुनर्लेखन की वैश्विक विन्यास फाइल (httpd.conf) इस प्रकार है:

RewriteBase/
RewriteCond %{REQUEST_URI} ^/MySite.* 
RewriteHeader X-Remote-User: .* %{REMOTE_USER} 

RewriteCond हिस्सा /MySite के साथ शुरू यूआरआई में इस नियम से सीमा; आवश्यकतानुसार इसे समायोजित करने के लिए स्वतंत्र महसूस करें।

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