IIS7 अनुमतियाँ अवलोकन - ApplicationPoolIdentity


356

हमने हाल ही में IIS7 को एक मुख्य वेब सर्वर के रूप में अपग्रेड किया है और मुझे अनुमतियों के संदर्भ में अवलोकन की आवश्यकता है। इससे पहले, जब मुझे फ़ाइल सिस्टम में लिखने की आवश्यकता होती है, तो मैं ऐपपूल उपयोगकर्ता (नेटवर्क सेवा) को निर्देशिका या फ़ाइल तक पहुंच प्रदान करूंगा।

IIS7 में, मैं डिफ़ॉल्ट रूप से देखता हूं, AppPool उपयोगकर्ता के लिए सेट है ApplicationPoolIdentity। इसलिए जब मैं कार्य-प्रबंधक की जांच करता हूं, तो मैं देखता हूं कि 'WebSite.com' नामक एक उपयोगकर्ता खाता IIS प्रक्रिया चला रहा है (IIS में वेबसाइट का नाम होने के नाते 'Website.com')

हालाँकि यह उपयोगकर्ता खाता मौजूद नहीं है यदि मैं अनुमति देने के लिए इसका उपयोग करने का प्रयास करता हूं। तो, मैं यह कैसे निर्धारित करूं कि किस उपयोगकर्ता को अनुमति दी जाए?

संपादित करें ==================================================== =============================

स्क्रीन शॉट में समस्या के लिए नीचे देखें। हमारी वेबसाइट (www.silverchip.co.uk) उपयोगकर्ता नाम SilverChip.co.uk पर चलती है। हालाँकि जब मैं पेमिशन जोड़ता हूँ, तो यह उपयोगकर्ता मौजूद नहीं है!

यहां छवि विवरण दर्ज करें

================================= एपपूल इमेज देखें

यहां छवि विवरण दर्ज करें


2
वास्तव में इस मामले पर Microsoft की जानकारी बहुत अच्छी है अनुप्रयोग पूल पहचान
DanielV

जवाबों:


679

ApplicationPoolIdentity वास्तव में IIS7 + में उपयोग करने के लिए सबसे अच्छा अभ्यास है। यह एक गतिशील रूप से बनाया गया, बिना खाता वाला खाता है। किसी विशेष एप्लिकेशन पूल के लिए फ़ाइल सिस्टम सुरक्षा जोड़ने के लिए IIS.net की "एप्लिकेशन पूल पहचान" देखें । त्वरित संस्करण:

यदि एप्लिकेशन पूल को "DefaultAppPool" नाम दिया गया है (यदि यह नाम अलग है तो नीचे इस पाठ को बदलें)

  1. विंडोज एक्सप्लोरर खोलें
  2. एक फ़ाइल या निर्देशिका का चयन करें।
  3. फ़ाइल पर राइट क्लिक करें और "गुण" चुनें
  4. "सुरक्षा" टैब चुनें
  5. "संपादित करें" पर क्लिक करें और फिर "जोड़ें" बटन पर क्लिक करें
  6. "स्थान" बटन पर क्लिक करें और सुनिश्चित करें कि आप स्थानीय मशीन का चयन करें । ( यदि सर्वर एक का है तो विंडोज़ डोमेन नहीं ।)
  7. " IIS AppPool \ DefaultAppPool " में "चयन करने के लिए ऑब्जेक्ट नाम दर्ज करें:" पाठ बॉक्स दर्ज करें। (अपने एप्लिकेशन पूल का नाम जो भी हो, यहां "DefaultAppPool" बदलना न भूलें।)
  8. "चेक नाम" बटन पर क्लिक करें और "ओके" पर क्लिक करें।

11
@Pino: नहीं, वेब साइट का नाम नहीं। एप्लिकेशन पूल नाम का उपयोग करें । प्रत्येक वेब साइट को एक एप्लीकेशन पूल सौंपा गया है। आप बता सकते हैं कि वेब साइट के गुण बेसिक सेटिंग्स डायलॉग (IIS7 में) कौन से हैं।
जॉन एडम्स

2
@Pino: उस स्थिति में, आपको जो सुरक्षा भूमिका का उपयोग करना चाहिए, वह है IIS AppPool\silverchip.co.uk। मैंने सुरक्षा नामों में अवधि की कोशिश नहीं की है - आप इसे विराम चिह्न के बिना कुछ में बदलना चाह सकते हैं।
जॉन एडम्स

7
जैसा मैंने कहा है मैंने आपके निर्देशों का पालन किया है। लेकिन एक हैक है। आप गुण सेट करने के लिए है enable load user profileकरने के लिए trueअनुप्रयोग पूल सेटिंग्स में। और इस सेटिंग के बाद ही मैं एप्लिकेशन चला पा रहा था। इसलिए कृपया अपने निर्देशों को अपडेट करें और 9 वां बिंदु जोड़ें।
जॉनी_ डी।

19
याद रखें कि अनाम प्रमाणीकरण के लिए सर्वर सेटिंग्स एप्लिकेशन पूल पहचान का उपयोग भी कर रही है। IUSR से वापस स्विच करते ही इस समाधान ने मेरे लिए काम किया।
बबलू

11
यहाँ ध्यान दें! आप उपयोक्ता को उपयोक्ता के रूप में नहीं देख सकते, लेकिन आपको इसे टाइप करना होगा। नाम की जाँच करना केवल एक चीज है जिसे आप कर सकते हैं।
रेमो

87

सर्वर का स्थानीय नाम का उपयोग करना याद रखें, न कि डोमेन नाम, जब नाम को हल करना

IIS AppPool\DefaultAppPool

(सिर्फ एक अनुस्मारक क्योंकि यह मुझे एक बिट के लिए फँस गया):यहां छवि विवरण दर्ज करें


हां, मैं इसे हर बार भूल जाता हूं, रिमाइंडर जेम्स टॉमी के लिए धन्यवाद!
tjans

30

IIS AppPool \ YourAppPoolName उपयोगकर्ता के लिए पहुँच देना IIS डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ पर्याप्त नहीं हो सकता है।

मेरे मामले में, मैं अभी भी त्रुटि HTTP त्रुटि 401.3 था - AppPool उपयोगकर्ता को जोड़ने के बाद अनधिकृत और IUSR उपयोगकर्ता के लिए अनुमतियाँ जोड़ने के बाद ही इसे ठीक किया गया था ।

यह आवश्यक है, क्योंकि डिफ़ॉल्ट रूप से, IUSR का उपयोग करके बेनामी एक्सेस किया जाता है । आप एक अन्य विशिष्ट उपयोगकर्ता, अनुप्रयोग पूल सेट कर सकते हैं या IUSR का उपयोग जारी रख सकते हैं, लेकिन उपयुक्त अनुमतियाँ सेट करना न भूलें।

प्रमाणीकरण टैब

इस उत्तर का श्रेय: HTTP त्रुटि 401.3 - अनधिकृत


3
यह महत्वपूर्ण है !!! सुरक्षा के लिए "अनाम प्रमाणीकरण" को "एप्लिकेशन पूल पहचान" में बदलना होगा! मुझे यकीन है कि IUSR पर सेट होने का एक अच्छा कारण है, लेकिन मैं एक भी नहीं सोच सकता। धन्यवाद!!!
दान बी

इसने मेरे लिए मुद्दा तय कर दिया है। ऐसा इसलिए हो सकता है क्योंकि Windows Server 2012 R2 पर IIS का मेरा संस्करण 8 है
myroslav

2
यह एक महत्वपूर्ण कदम है जिसे स्वीकृत उत्तर में जोड़ा जाना चाहिए। इसके अलावा सबसे सरल तरीका है कि रेडियो बॉक्स को एप्लीकेशन पूल आइडेंटिटी में
बदला जाए

1
यह मेरी समस्या थी! धन्यवाद!!
स्लोन रेनॉल्ड्स

28

Windows Server 2008 (r2) पर आप गुण-> सुरक्षा के माध्यम से एक फ़ोल्डर में एक एप्लिकेशन पूल पहचान असाइन नहीं कर सकते। आप इसे निम्नलिखित का उपयोग करके एक व्यवस्थापक कमांड प्रॉम्प्ट के माध्यम से कर सकते हैं:

icacls "c:\yourdirectory" /t /grant "IIS AppPool\DefaultAppPool":(R)

1
क्या आप इसे थोड़ा समझा सकते हैं? (R) का क्या अर्थ है? क्या आप वास्तव में इस आदेश में कोण कोष्ठक दर्ज करते हैं?
केट ग्रेगोरी

3
हाय केट, मैं "आपका ऐप्पल नाम यहाँ" को दर्शाने के लिए <> का उपयोग कर रहा था, लेकिन एक वैध ऐप्पल नाम में छोड़ दिया गया। IIS प्रबंधक में -> एप्लिकेशन पूल में आपको नाम, रिक्त स्थान शामिल करने की आवश्यकता होगी। पिछले एक मैंने किया था "IIS AppPool \ ClientName_CompanyName - इंट्रानेट"। : (R) इस मामले में रीड एक्सेस दे रहा है। आप एफ (पूर्ण), एम (संशोधित), आरएक्स (रीड + निष्पादित) और डब्ल्यू (केवल लिखें) का उपयोग कर सकते हैं।
क्रिस

9
आप वास्तव में Windows Server 2008 R2 में गुणों में प्रतिभूति टैब के माध्यम से असाइन कर सकते हैं ताकि आपको इस समाधान की आवश्यकता न हो। सुनिश्चित करें कि आपके पास ऑब्जेक्ट प्रकार और स्थान पर चयनित सुरक्षा प्रिंसिपल हैं।
जिस्म ३०'१४

यह उत्तर मेरे लिए काम करता है। चयनित उत्तर मेरे लिए काम नहीं करता है।
टुयेन गुयेन

3
[लिंक] serverfault.com/questions/81165// के चुनिंदा उत्तर की मूल प्रतिक्रिया भी देखें। सादे विंडोज सर्वर 2008 (या डेटासेन्ट एडिशन) के लिए आपको ऐप पूल अकाउंट को सिक्योरिटी में लाने के लिए कमांड लाइन का उपयोग करना होगा। संवाद। एक बार वहां पहुंचने के बाद, आप इसे प्रबंधित कर सकते हैं, उपनिर्देशिकाओं के लिए अनुमति स्तर बदल सकते हैं, आदि पर भी विचार करें: "icacls" c: \ yourdirectory "/ t / अनुदान" IIS AppPool \ DefaultAppPool ":( OI) (CI) (CI) (R)" OI -बिजनेस इनहेरिटेंस, CI-कंटेनर इनहेरिटेंस।
गुप्त

7

भाग ए: अपने एप्लिकेशन पूल को कॉन्फ़िगर करना

मान लीजिए कि एप्लिकेशन पूल का नाम 'MyPool' है, IIS प्रबंधक से एप्लिकेशन पूल की 'उन्नत सेटिंग' पर जाएं

  1. 'पहचान' के लिए नीचे स्क्रॉल करें। मान को संपादित करने की कोशिश करने से एक संवाद बॉक्स आएगा। Select बिल्ट-इन अकाउंट ’का चयन करें और इसके तहत, I एप्लीकेशनपुलेंटिटी’ चुनें।

  2. 'पहचान' के नीचे कुछ पंक्तियाँ, आपको 'लोड उपयोगकर्ता प्रोफ़ाइल' मिलनी चाहिए। यह मान 'सही' पर सेट होना चाहिए।

भाग बी: अपनी वेबसाइट को कॉन्फ़िगर करना

  1. वेबसाइट का नाम: SiteName (सिर्फ एक उदाहरण)
  2. शारीरिक पथ: C: \ जो भी (सिर्फ एक उदाहरण)
  3. इस रूप में कनेक्ट करें ...: एप्लिकेशन उपयोगकर्ता (पास-थ्रू प्रमाणीकरण) (उपरोक्त सेटिंग्स IIS प्रबंधक में साइट की 'मूल सेटिंग्स' में पाई जा सकती हैं)
  4. बुनियादी सेटिंग्स को कॉन्फ़िगर करने के बाद, साइट के मुख्य कंसोल में 'IIS' के तहत 'प्रमाणीकरण' कॉन्फ़िगरेशन देखें। खोलो इसे। आपको 'बेनामी प्रमाणीकरण' के लिए एक विकल्प देखना चाहिए। सुनिश्चित करें कि यह सक्षम है। इसके बाद राइट क्लिक करें और इसे 'एडिट ...' करें। 'एप्लिकेशन पूल पहचान' का चयन करें।

भाग सी: अपने फ़ोल्डर को कॉन्फ़िगर करना

प्रश्न में फ़ोल्डर C: \ जो भी हो

  1. प्रॉपर्टीज पर जाएं - शेयरिंग - एडवांस्ड शेयरिंग - अनुमतियां और टिक 'इस फ़ोल्डर को साझा करें'
  2. उसी संवाद बॉक्स में, आपको एक बटन मिलेगा 'अनुमतियाँ'। इसे क्लिक करें।
  3. एक नया डायलॉग बॉक्स खुलेगा। 'जोड़ें' पर क्लिक करें।
  4. एक नया डायलॉग बॉक्स 'सेलेक्ट यूजर्स या ग्रुप्स' खुलेगा। 'इस स्थान से' के तहत सुनिश्चित करें कि नाम आपके स्थानीय होस्ट कंप्यूटर के समान है। फिर, 'ऑब्जेक्ट नाम दर्ज करें' के तहत, 'IIS AppPool \ MyPool' टाइप करें और 'चेक नेम' पर क्लिक करें और फिर 'I' टाइप करें।
  5. 'MyPool' उपयोगकर्ता के लिए पूर्ण साझाकरण अनुमति दें। इसे लागू करें और फ़ोल्डर गुणों को बंद करें
  6. फ़ोल्डर गुण फिर से खोलें। इस बार, सिक्योरिटी - एडवांस्ड - परमिशन पर जाएँ और ऐड पर क्लिक करें। शीर्ष पर एक विकल्प 'सिलेक्ट ए प्रिंसिपल' या उपयोगकर्ता को चुनने के लिए कोई अन्य विकल्प होगा। इसे क्लिक करें।
  7. 'उपयोगकर्ता या समूह चुनें' संवाद बॉक्स फिर से खुल जाएगा। चरण 4 को दोहराएं।
  8. सभी या जितनी अनुमति आपको 'MyPool' उपयोगकर्ता को देनी होगी।
  9. 'सभी चाइल्ड ऑब्जेक्ट अनुमतियां बदलें ... "चेक करें और लागू करें और बंद करें।

अब आपको ब्राउज़ वेबसाइट का उपयोग करने में सक्षम होना चाहिए


आप जंगल के राजा हैं! धन्यवाद
tno2007

5

जॉन एडम्स का शीर्ष उत्तर

PowerShell लोगों के लिए इसे कैसे लागू किया जाए, यहां बताया गया है

$IncommingPath = "F:\WebContent"
$Acl = Get-Acl $IncommingPath
$Ar = New-Object  system.security.accesscontrol.filesystemaccessrule("IIS AppPool\DefaultAppPool","FullControl","ContainerInherit, ObjectInherit", "None", "Allow")
$Acl.SetAccessRule($Ar)
Set-Acl $IncommingPath $Acl

1

भ्रम को जोड़ने के लिए, (Windows Explorer) प्रभावी अनुमतियाँ संवाद इन लॉगिन के लिए काम नहीं करता है। मेरे पास पास-थ्रू प्रमाणीकरण का उपयोग करके "Umbo4" साइट है, और साइट रूट फ़ोल्डर में उपयोगकर्ता के प्रभावी अनुमतियों को देखा। चेक नाम परीक्षण ने "IIS AppPool \ Umbo4" नाम को हल किया, लेकिन प्रभावी अनुमतियों से पता चलता है कि उपयोगकर्ता के पास फ़ोल्डर (सभी चेकबॉक्स अनियंत्रित) पर कोई अनुमति नहीं थी।

फिर मैंने एक्सप्लोरर सुरक्षा टैब का उपयोग करके इस उपयोगकर्ता को फ़ोल्डर से स्पष्ट रूप से बाहर कर दिया। यह अपेक्षित रूप से HTTP 500.19 त्रुटि के साथ साइट में विफल रहा। प्रभावी अनुमतियां हालांकि पहले की तरह ही दिखती थीं।


1

मैंने अपनी सभी asp.net समस्याओं को एक पासवर्ड के साथ IUSER नामक एक नया उपयोगकर्ता बनाकर ठीक किया और इसे नेटवर्क सेवा और उपयोगकर्ता समूह में जोड़ा। फिर अपने सभी आभासी साइटों और अनुप्रयोगों को इसके पासवर्ड के साथ IUSER के लिए प्रमाणीकरण सेट करें .. IUSER और BAM को शामिल करने के लिए उच्च स्तरीय फ़ाइल एक्सेस सेट करें, जिसमें इस एक सहित कम से कम 3-4 मुद्दे तय हों।

डेव

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