asp.net - आईआईएस / एएसपी.नेट के लिए सभी उपयोगकर्ता खाते क्या हैं और वे अलग-अलग कैसे होते हैं?




security iis user-accounts (2)

एएसपी.नेट 4.0 के साथ विंडोज सर्वर 2008 के तहत स्थापित उपयोगकर्ता के पास पूरी तरह से संबंधित उपयोगकर्ता खाते हैं, और मैं समझ नहीं पा रहा हूं कि कौन सा है, वे कैसे भिन्न हैं, और कौन सा वास्तव में मेरा ऐप चलता है। यहां एक सूची दी गई है:

  • IIS_IUSRS
  • IUSR
  • DefaultAppPool
  • एएसपी.नेट v4.0
  • नेटवर्क सेवा
  • स्थानीय सेवा।

कौन सा क्या है?


Answers

यह एक बहुत अच्छा सवाल है और दुख की बात है कि कई डेवलपर्स वेब डेवलपर होने और आईआईएस की स्थापना के संदर्भ में आईआईएस / एएसपी.नेट सुरक्षा के बारे में पर्याप्त सवाल नहीं पूछते हैं। तो यहाँ जाता है ....

सूचीबद्ध पहचानों को कवर करने के लिए:

IIS_IUSRS:

यह पुराने IIS6 IIS_WPG समूह के समान है। यह एक अंतर्निहित समूह है जिसमें इसकी सुरक्षा कॉन्फ़िगर की गई है कि इस समूह का कोई भी सदस्य एप्लिकेशन पूल पहचान के रूप में कार्य कर सकता है।

IUSR:

यह खाता पुराने IUSR_<MACHINE_NAME> स्थानीय खाते के समान है जो IIS5 और IIS6 वेबसाइटों के लिए डिफ़ॉल्ट अनाम उपयोगकर्ता था (यानी साइट की गुणों के निर्देशिका सुरक्षा टैब के माध्यम से कॉन्फ़िगर किया गया)।

IIS_IUSRS और IUSR बारे में अधिक जानकारी के लिए देखें:

आईआईएस 7 में अंतर्निहित उपयोगकर्ता और समूह खातों को समझना

DefaultAppPool:

यदि एप्लिकेशन पूल पहचान सुविधा का उपयोग करके चलाने के लिए एक एप्लिकेशन पूल कॉन्फ़िगर किया गया है तो पूल पहचान के रूप में उपयोग किए जाने वाले फ्लाई पर IIS AppPool\<pool name> नामक एक "संश्लेषित" खाता बनाया जाएगा। इस मामले में पूल के जीवनकाल के लिए बनाए गए IIS AppPool\DefaultAppPool नामक संश्लेषित खाता होगा। यदि आप पूल हटाते हैं तो यह खाता अब मौजूद नहीं होगा। फ़ाइलों और फ़ोल्डर्स को अनुमतियां लागू करते समय इन्हें IIS AppPool\<pool name> का उपयोग करके जोड़ा जाना चाहिए। आप इन पूल खातों को अपने कंप्यूटर उपयोगकर्ता प्रबंधक में भी नहीं देख पाएंगे। अधिक जानकारी के लिए निम्नलिखित देखें:

आवेदन पूल पहचान

ASP.NET v4.0: -

यह एएसपी.NET v4.0 एप्लिकेशन पूल के लिए एप्लिकेशन पूल पहचान होगी। ऊपर DefaultAppPool देखें।

NETWORK SERVICE: -

NETWORK SERVICE खाता Windows 2003 पर एक अंतर्निहित पहचान है। NETWORK SERVICE एक कम विशेषाधिकार प्राप्त खाता है जिसके तहत आप अपने एप्लिकेशन पूल और वेबसाइट चला सकते हैं। Windows 2003 पूल में चल रही एक वेबसाइट अभी भी साइट के अनाम खाते (IUSR_ या जिसे आपने अनाम पहचान के रूप में कॉन्फ़िगर किया है) का प्रतिरूपण कर सकते हैं।

विंडोज 2008 से पहले एएसपी.नेट में आप एप्लिकेशन पूल खाते (आमतौर पर NETWORK SERVICE ) के तहत एएसपी.NET निष्पादन अनुरोध प्राप्त कर सकते हैं। वैकल्पिक रूप से आप स्थानीय रूप से web.config फ़ाइल में <identity impersonate="true" /> सेटिंग के माध्यम से साइट के अज्ञात खाते का प्रतिरूपण करने के लिए ASP.NET को कॉन्फ़िगर कर सकते हैं (यदि वह सेटिंग लॉक है तो उसे machine.config में किसी व्यवस्थापक द्वारा किया जाना चाहिए machine.config फ़ाइल)।

<identity impersonate="true"> होस्टिंग <identity impersonate="true"> साझा होस्टिंग वातावरण में सामान्य है जहां साझा अनुप्रयोग पूल का उपयोग किया जाता है (प्रतिरूपित खाते की अनदेखी को रोकने के लिए आंशिक ट्रस्ट सेटिंग्स के संयोजन के साथ)।

IIS7.x / ASP.NET प्रतिरूपण नियंत्रण में अब किसी साइट की प्रमाणीकरण कॉन्फ़िगरेशन सुविधा के माध्यम से कॉन्फ़िगर किया गया है। तो आप पूल पहचान, IUSR या एक विशिष्ट कस्टम अज्ञात खाते के रूप में चलाने के लिए कॉन्फ़िगर कर सकते हैं।

LOCAL SERVICE:

LOCAL SERVICE खाता सेवा नियंत्रण प्रबंधक द्वारा उपयोग किया जाने वाला एक अंतर्निहित खाता है। इसमें स्थानीय कंप्यूटर पर विशेषाधिकारों का न्यूनतम सेट है। इसका उपयोग सीमित रूप से सीमित है:

स्थानीय सेवा खाता

LOCAL SYSTEM:

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

लोकल सिस्टम खाता

प्रयोग में:

अभ्यास में वेबसाइट को सुरक्षित करने के लिए पसंदीदा दृष्टिकोण (यदि साइट को अपना स्वयं का एप्लिकेशन पूल मिलता है - जो आईआईएस 7 के एमएमसी में एक नई साइट के लिए डिफ़ॉल्ट है) Application Pool Identity तहत चलाना है। इसका अर्थ यह है कि आवेदन पूल पहचान में अपनी एप्लिकेशन पूल की उन्नत सेटिंग्स में साइट की पहचान सेट करना:

वेबसाइट में आपको प्रमाणीकरण सुविधा को कॉन्फ़िगर करना चाहिए:

अनाम प्रमाणीकरण प्रविष्टि पर राइट क्लिक करें और संपादित करें:

सुनिश्चित करें कि "एप्लिकेशन पूल पहचान" चुना गया है:

जब आप फ़ाइल और फ़ोल्डर अनुमतियों को लागू करने के लिए आते हैं तो आप एप्लिकेशन पूल पहचान प्रदान करते हैं जो भी अधिकारों की आवश्यकता होती है। उदाहरण के लिए यदि आप ASP.NET v4.0 पूल अनुमतियों के लिए एप्लिकेशन पूल पहचान प्रदान कर रहे हैं तो आप या तो एक्सप्लोरर के माध्यम से ऐसा कर सकते हैं:

"नाम जांचें" बटन पर क्लिक करें:

या आप ICACLS.EXE उपयोगिता का उपयोग करके ऐसा कर सकते हैं:

icacls c:\wwwroot\mysite /grant "IIS AppPool\ASP.NET v4.0":(CI)(OI)(M)

... या ... यदि आप साइट के एप्लिकेशन पूल को BobsCatPicBlog कहा जाता है तो:

icacls c:\wwwroot\mysite /grant "IIS AppPool\BobsCatPicBlog":(CI)(OI)(M)

मुझे आशा है कि इससे चीजों को स्पष्ट करने में मदद मिलेगी।

अद्यतन करें:

मैं बस 200 9 से इस उत्कृष्ट उत्तर में फंस गया जिसमें उपयोगी जानकारी का एक गुच्छा शामिल है, जो पढ़ने के लायक है:

'स्थानीय सिस्टम' खाते और 'नेटवर्क सेवा' खाते के बीच का अंतर?


सुनिश्चित नहीं है कि यह आपके परिदृश्य में काम करेगा, लेकिन <system.web> अंतर्गत अपने web.config निम्नलिखित जोड़ने का प्रयास करें:

  <system.web>
    <customErrors mode="Off" />
  ...
  </system.web>

मेरे उदाहरण में काम करता है।

और देखें:

कस्टमइरर्स मोड = "ऑफ"





asp.net security iis user-accounts