पास-थ्रू ऑथेंटिकेशन के साथ IIS 7 में वेब तैनात


12

बहुत परीक्षण और त्रुटि विन्यास के बाद, मैं वर्तमान में msdeploy.exe स्क्रिप्ट करने में सक्षम हूं, जो विज़ुअल स्टूडियो 2010 में निर्मित पैकेज को एक कमांड लाइन के साथ IIS 7.5 चलाने वाले दूरस्थ सर्वर पर तैनात करने में सक्षम है:

मूल प्रमाणीकरण आदेश:

msdeploy -source:package="project.zip" -dest:auto,computerName='https://webserver:8172/MsDeploy.axd',authtype='Basic',username='DOMAIN\myuser',password='xxx',includeAcls='False' -verb:sync -setParamFile:"SetParameters.xml" -allowUntrusted

क्या मैं पास-थ्रू प्रमाणीकरण सक्षम करके कमांड लाइन में पासवर्ड प्रदान करने की आवश्यकता को समाप्त कर सकता हूँ? वेब तैनात डॉक्स AuthType पैरामीटर का उल्लेख है कि मूल के बजाय, 'ntlm' निर्दिष्ट कर सकते हैं। हालाँकि, जब भी मैं यह कोशिश करता हूं (नीचे उदाहरण देखें), तो मुझे एक 401 इंगित करने में त्रुटि मिलती है। WMSvc वेब लॉग एक 401.2 दिखाता है और उस लॉग प्रविष्टि में कोई भी उपयोगकर्ता नहीं है, मूल प्रमाणीकरण का उपयोग करने के पिछले प्रयासों के विपरीत, वास्तव में DOMAIN का मायूस दिखाता है। वेब लॉग में। क्लाइंट या सर्वर के इवेंट व्यूअर में कोई अन्य उपयोगी जानकारी नहीं मिलती है।

नोट: लक्ष्य वेबसर्वर दूसरे डोमेन पर है, इसलिए मैं net use \\webserver /u:DOMAIN\myuserएक टोकन स्थापित करने के लिए करता हूं ।

पास-थ्रू प्रमाणीकरण आदेश का प्रयास:

msdeploy -source:package="project.zip" -dest:auto,computerName='https://webserver:8172/MsDeploy.axd',authtype='NTLM',includeAcls='False' -verb:sync -setParamFile:"SetParameters.xml" -allowUntrusted

ऐसा लगता है कि msdeploy.exe HTTP स्तर पर IIS के साथ ठीक से प्रमाणित नहीं है। क्या गलत हो सकता है?

क्लाइंट Windows XP है, सर्वर Win2008R2 है। दोनों msdeploy.exe संस्करण 7.1.618.0 चला रहे हैं। दोनों में .NET 2.0, 3.5 और 4.0 स्थापित है।

जवाबों:


1

मुझे लगता है कि यदि क्लाइंट कंप्यूटर एक ही डोमेन के साथ नहीं रहता है तो हम पास-थ्रू प्रमाणीकरण का उपयोग नहीं कर सकते हैं। यदि आप 1.1 परिनियोजित वेब का उपयोग करते हैं, तो आप एक कमांड लाइन में सीधे उपयोगकर्ता नाम और पासवर्ड डालने से बचने के लिए storeCredentials और getCredentials आज़मा सकते हैं।


0

मैं आपकी समस्या को पूरी तरह से समझ नहीं पा रहा हूं, लेकिन क्या आप इसे पूरा करने के लिए -storeCredentials और -getCredentials ध्वज का उपयोग कर सकते हैं?


0

यह स्पष्ट रूप से एक देर से जवाब है और मुझे यकीन है कि आपने इसे हल कर लिया है या इसके चारों ओर काम किया है, लेकिन अगर यह किसी और की मदद करता है:

जब आप लक्ष्य वेबसर्वर किसी अन्य डोमेन पर होते हैं, तब भी आप निश्चित रूप से NTLM प्रमाणीकरण का उपयोग कर एक पैकेज को तैनात करने के लिए MSDeploy का उपयोग कर सकते हैं। यह लगभग कमांडलाइन है जिसका हम उपयोग करते हैं:

msdeploy.exe -source:package='MyPackage.csproj.zip' -dest:auto,computerName='https://www.myserver.com:8172/MsDeploy.axd?site=mysitename',authtype='NTLM',includeAcls='False' -verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:"MyPackage.csproj.SetParameters.xml"

इस कार्य के लिए, हम इस कमांड को एक नाम + पासवर्ड की सुरक्षा के संदर्भ में स्रोत मशीन से चलाते हैं, जो लक्ष्य डोमेन पर उपयोगकर्ता नाम + पासवर्ड से समान रूप से मेल खाता है।

परम फ़ाइल का शायद प्रमाणीकरण पर कोई असर नहीं है, लेकिन मैं इसे पूर्णता के लिए शामिल कर रहा था। यह वह विधि है जिसका उपयोग हम आवेदन के लिए अलग-अलग कनेक्शन लागू करने के लिए करते हैं, जहां यह तैनात है।

हम टोकन स्थापित करने के लिए "नेट उपयोग" दृष्टिकोण का उपयोग नहीं करते हैं, मुझे यकीन नहीं है कि यह HTTP के माध्यम से NTLM प्रमाणीकरण में आसानी से अनुवाद करता है।


-3

IIS साइट व्यवस्थापक पृष्ठ -> IIS -> प्रमाणीकरण पर जाएं

अनाम प्रमाणीकरण सक्षम करें -> IIS अतिथि उपयोगकर्ता निर्दिष्ट करें (IUSER_computername)

वेबसाइट wwwroot फ़ोल्डर पर IIS अतिथि उपयोगकर्ता की अनुमति दें।


कृपया कोई प्रमाणीकरण नहीं होने के साथ पार्थस्ट्रु प्रमाणीकरण को भ्रमित न करें।
spoulson
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.