2011-04-20 6 views
228

ASP.NET 4.0 के साथ Windows Server 2008 के तहत स्थापित वहाँ संबंधित उपयोगकर्ता खातों की एक पूरी धसान है, और मैं नहीं समझ सकता है जो एक है जो, कैसे वे भिन्न होते हैं, और जो एक वास्तव में एक है कि मेरे ऐप के अधीन ही है ।IIS/ASP.NET के लिए सभी उपयोगकर्ता खातों के क्या हैं और वे कैसे अलग है?

  • IIS_IUSRS
  • IUSR
  • DefaultAppPool
  • ASP.NET v4.0
  • NETWORK_SERVICE
  • स्थानीय सेवा: यहाँ एक सूची है।

क्या क्या है?

+0

और विंडोज सर्वर का उपयोग कर 2012 एएसपी.NET 4.0 या उससे ऊपर के साथ? – Kiquenet

उत्तर

366

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

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

IIS_IUSRS:

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

IUSR:

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

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

Understanding Built-In User and Group Accounts in IIS 7

DefaultAppPool:

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

Application Pool Identities

ASP.NET v4.0: -

यह ASP.NET v4.0 आवेदन पूल के लिए आवेदन पूल पहचान हो जाएगा। ऊपर DefaultAppPool देखें।

NETWORK SERVICE: -

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

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

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

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

LOCAL SERVICE:

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

LocalService Account

LOCAL SYSTEM:

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

LocalSystem Account

अभ्यास में:

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

enter image description here

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

enter image description here

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

enter image description here

,210

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

enter image description here

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

enter image description here

:

enter image description here

"की जाँच करें नाम" बटन पर क्लिक करें या आप 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)

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

अद्यतन:

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

The difference between the 'Local System' account and the 'Network Service' account?

+0

एक ही उपयोगकर्ता का उपयोग सर्वसम्मति प्रमाणीकरण और ऐप पूल पहचान के लिए करने में सहमत नहीं है ... यदि आपको किसी फ़ोल्डर को ऐपपूलिडेंसी लिखने की अनुमति देने की आवश्यकता है .... – giammin

+0

@giammin - क्यों नहीं? जब तक आपके पास कोई विशेष मामला न हो, एप्लिकेशन पूल पहचान का उपयोग करना सबसे सुरक्षित तरीका है, बशर्ते प्रत्येक साइट अपने स्वयं के एप्लिकेशन पूल में हो। "अधिकार के लिए अपील" करने के लिए नफरत है लेकिन 15 साल तक एक साझा वेब होस्ट इंजीनियर और सुरक्षा लड़का रहा है, यह दृष्टिकोण आईआईएस 7 + पर कोई ब्रेनर नहीं है। – Kev

+0

@ केवी बस मैं अज्ञात उपयोगकर्ता – giammin

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