IIS - 401.3 - अनधिकृत


92

मैं IIS का उपयोग करके आरंभ करने का प्रयास कर रहा हूं। मैंने IIS प्रबंधक पर एक नई साइट बनाई, इसे मेरी फ़ाइल सिस्टम पर एक फ़ोल्डर में मैप किया और फ़ोल्डर में index.html जोड़ा। मैंने इस साइट के लिए पोर्ट को 85 पर सेट किया है। जब मैं एक्सेस करने का प्रयास करता http://localhost:85/index.htmlहूं, तो मुझे निम्न त्रुटि संदेश मिलता है:

401.3 - अज्ञात - वेब सर्वर पर इस संसाधन के लिए एक्सेस कंट्रोल लिस्ट (ACL) कॉन्फ़िगरेशन या एन्क्रिप्शन सेटिंग्स के कारण आपको इस निर्देशिका या पृष्ठ को देखने की अनुमति नहीं है।

मैंने फ़ोल्डर पर सभी को रीड एक्सेस दी और फिर से कोशिश की। मैं तब पृष्ठ तक पहुँच सकता था।

मैंने तब wwwroot के साथ अपने फ़ोल्डर के गुणों की तुलना की। मैंने पाया कि wwwroot ने IIS_IUSRS पर पहुंच पढ़ी थी ... जब मैंने अपने फ़ोल्डर पर ऐसा ही किया और फिर से कोशिश की, तो मुझे फिर से उपरोक्त त्रुटि मिली। मैंने चेक किया है अनाम पहुँच डिफ़ॉल्ट रूप से सक्षम है, लेकिन मुझे अभी भी यह त्रुटि मिली है।

क्यों होता है ऐसा? समस्या को हल करने का सही तरीका क्या है?

जवाबों:


168

मैंने कई दिनों तक इसी मुद्दे पर संघर्ष किया है। यह फ़ाइल सिस्टम फ़ोल्डर के सुरक्षा उपयोगकर्ता पहुंच गुणों को संशोधित करके हल किया जा सकता है जिस पर आपकी साइट मैप की गई है। लेकिन IIS_IUSRS केवल वह खाता नहीं है जिसे आपको अधिकृत करना चाहिए।

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

या

  • IIS प्रबंधन कंसोल में, आपकी साइट के कॉन्फ़िगरेशन के प्रमाणीकरण भाग में, "विशिष्ट उपयोगकर्ता" के बजाय "एप्लिकेशन पूल की पहचान" का चयन करके "अनाम प्रमाणीकरण" पंक्ति को संशोधित करें।

6
मैंने काम करने के लिए "एप्लिकेशन पूल आइडेंटिटी" के साथ ऑन को प्रामाणिक पाया, लेकिन किसी कारणवश IUSR के साथ नहीं जा सका। धन्यवाद।
किलेबुल

5
इसके पीछे तर्क यह है कि डिफ़ॉल्ट रूप से साइट अनाम प्रमाणीकरण का उपयोग करती है, और IUSR अनाम खाता है। इसलिए IIS फ़ाइल सिस्टम (वेब ​​साइट भौतिक पथ) तक पहुंचने के लिए IUSR खाते का उपयोग करता है जो हमेशा काम नहीं कर सकता है (क्योंकि आपकी फ़ाइल प्रणाली IUSR को स्वीकार नहीं करेगी)। यही कारण है कि 401.3। फ़ाइल सिस्टम एक्सेस (वह खाता जो फ़ाइलों तक पहुँच प्रदान करता है) या अनाम पहचान को पूल पहचान में बदलकर (पूल पहचान IIS_IUSRS में होती है, जिसमें आमतौर पर फ़ाइलों तक पहुंच होती है), IIS को फ़ाइलों को एक्सेस करने के लिए पर्याप्त अनुमति होनी चाहिए।
लेक्स ली

58

यहाँ मेरे लिए क्या काम किया है।

  1. एप्लिकेशन पूल पहचान को उस खाते पर सेट करें जिसे किसी फ़ोल्डर को अनुमतियाँ दी जा सकती हैं।
  2. स्रोत निर्देशिका सुनिश्चित करें और सभी संबंधित फाइलों को एप्लिकेशन पूल पहचान संपत्ति को सौंपे गए खाते को फाइलों को पढ़ने के अधिकार दिए गए हैं
  3. IIS में, सर्वर रूट नोड पर, अनाम उपयोगकर्ता को ऐप पूल पहचान से इनहेरिट करने के लिए सेट करें। (यह वह हिस्सा था जिससे मैं जूझता था)

एप्लिकेशन पूल पहचान से विरासत में सर्वर अनाम सेट करने के लिए निम्न करें ..

  • IIS प्रबंधक खोलें (inetmgr)
  • बाएं हाथ के फलक में रूट नोड (सर्वर होस्ट नाम) का चयन करें
  • बीच के फलक में 'प्रमाणीकरण' एप्लेट खोलें
  • 'अनाम प्रमाणीकरण' पर प्रकाश डालें
  • दाएँ हाथ के फलक में 'संपादित करें ...' चुनें (एक डायलॉग बॉक्स खुलना चाहिए)
  • 'एप्लिकेशन पूल पहचान' चुनें

9
# 3) FIXED MY ISSUE: IIS में, सर्वर रूट नोड पर, अनाम उपयोगकर्ता को ऐप पूल पहचान से इनहेरिट करने के लिए सेट करें। (यह वह हिस्सा था जिससे मैं
रवि

मुझे पता है कि आप "धन्यवाद" टिप्पणी लिखने वाले नहीं हैं, लेकिन मुझे लगता है कि मुझे अपना आभार व्यक्त करने की आवश्यकता है। ऐसा कोई तरीका नहीं है जिससे मुझे यह पता चले।
जॉनी कुक

@ रविराम: कृपया आपके द्वारा बताए गए चरणों की व्याख्या करें। एक शुरुआत के रूप में कदम से कदम। आपका क्या मतलब है "n IIS, सर्वर रूट नोड पर, अनाम उपयोगकर्ता को ऐप पूल पहचान से विरासत में सेट करें।" कृपया मदद करें।
अटूट

@RaviRam - कमांड "inetmgr.exe" चलाएँ और IIS प्रशासन स्क्रीन दिखाई देगी। इसमें से मेरे उत्तर में उल्लिखित चरणों का पालन करें। आपको कमांड को व्यवस्थापक के रूप में चलाने की आवश्यकता होगी। msdn.microsoft.com/en-us/library/bb763170.aspx
barrypicker

जैसा कि एक अन्य उत्तर में उल्लेख किया गया है, मैंने पाया कि आपको रूट स्तर पर
एनॉन ऑर्टिकल

15

टी एल; डॉ;

ज्यादातर मामलों में, निम्नलिखित खाते तक पहुंच प्रदान करना (एक | दोनों) पर्याप्त होगा:

  1. IIS AppPool \ DefaultAppPool
  2. IUSR

पहुँच अधिकार के साथ :

  1. पढ़ें और निष्पादित करें
  2. फ़ोल्डर सामग्री की सूची बनाएं
  3. पढ़ें

बस!

अधिक विस्तृत विवरण के लिए आगे पढ़ें ...


  1. IIS खोलें और अपना एप्लिकेशन चुनें
  2. दाईं ओर ऑथेंटिकेशन पर क्लिक करें
  3. " बेनामी प्रमाणीकरण का चयन करेंयहां " ।
  4. निम्नलिखित संवाद पॉप अप करता है।

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

ऊपर दिए गए चित्र में जो चुना गया है, उसके आधार पर वेब एप्लिकेशन फ़ोल्डर के ACL तक पहुंच प्रदान करें:

  • विशिष्ट उपयोगकर्ता : दोनोंIUSR(मेरे मामले में) केलिए अनुदान पहुंच+IIS AppPool\DefaultAppPool
  • आवेदन पूल पहचान :IIS AppPool\DefaultAppPoolकेवल केलिए अनुदान का उपयोग

IIS AppPool\DefaultAppPool खाता नए IIS वेब अनुप्रयोगों के लिए डिफ़ॉल्ट ऐप्पल खाता है, यदि आपने एक कस्टम खाता सेट किया है, तो कस्टम एक का उपयोग करें।


खाते को निम्नलिखित अनुमति दें:

  1. Read & Execute
  2. List folder contents
  3. Read

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


13

जब से आप स्थैतिक सामग्री के साथ काम कर रहे हैं ...

आपकी वेबसाइट के मूल के रूप में कार्य करने वाले फ़ोल्डर पर- यदि आप राइट क्लिक करें> गुण> सुरक्षा, "उपयोगकर्ता" सूची में दिखाई देता है? यदि "जोड़ें ..." पर क्लिक न करें और इसे टाइप करें, जब आप कर रहे हों तो "लागू करें" पर क्लिक करना सुनिश्चित करें।


3

इस समाधान का प्रयास करें:

/server/38222/iis-7-5-windows-7-http-error-401-3-unauthorized

यह भी जांचें कि क्या IIS ऐपपूल चलाने वाले उपयोगकर्ता ने उस फ़ोल्डर / फ़ाइल तक पहुंच पढ़ ली है।

कृपया एक नज़र इसे देखिये:

http://www.iis.net/learn/manage/configuring-security/application-pool-identities

इस पर भी एक नजर:

http://www.iis.net/learn/get-started/planning-for-security/understanding-built-in-user-and-group-accounts-in-iis


1

बस के मामले में किसी और को इस में चलाता है। मैंने इन सभी चरणों का निवारण किया है और यह पता चला है क्योंकि मैंने मैक से कुछ फ़ाइलों को अनज़िप किया है, Microsoft ने बिना किसी अधिसूचना के स्वचालित रूप से फ़ाइलों को एन्क्रिप्ट किया है। फ़ोल्डर अनुमतियों को सेट करने की कोशिश करने के घंटों के बाद, मैंने अंदर जाकर देखा कि फाइल के नाम हरे थे, जिसका अर्थ है कि फाइलें एन्क्रिप्ट की गई थीं और यदि फ़ोल्डर की अनुमति सही है तो भी IIS उसी त्रुटि को फेंक देगा।


इस सटीक समान मुद्दे पर बहुत अधिक समय खर्च किया। बस यहाँ कमिट करने के लिए। मैं आईआईएस की खोज और ईएफएस तक पहुंच के लिए यहां समाप्त हुआ, लेकिन आपके जवाब ने मुझे मेरे मुद्दे के मूल कारण में बदल दिया - एक मैक से विस्तारित ज़िप फ़ाइल। मेरा विशेष परिदृश्य एक ऐसा मुद्दा था जहां ASP.NET Core ने IIS पर प्रक्रिया में होस्ट किया - लॉन्च नहीं होगा - कोई ईवेंट लॉग संदेश नहीं, कोई stdout लॉग नहीं, आदि। लोकलहोस्ट के माध्यम से एक्सेस करने से एक त्रुटि संदेश दिया गया कि web.config अमान्य था, लेकिन कोई स्रोत नहीं दिखा। जाहिर है कि फ़ाइल सुलभ थी, लेकिन सामग्री को पढ़ा नहीं जा सकता था।
आरोन

1
  1. एक नई साइट बनाएँ, साइट फ़ोल्डर पर राइट क्लिक करें फिर साइट जोड़ें पर क्लिक करें
  2. साइट का नाम दर्ज करें।
  3. भौतिक पथ का चयन करें
  4. Ip पता चुनें
  5. पोर्ट बदलें
  6. ओके पर क्लिक करें
  7. एप्लिकेशन पूल पर जाएं
  8. साइट पूल का चयन करें
  9. क्लिक करें एडवांस सेटिंग्स पर राइट-क्लिक करें
  10. .Net सीएलआर संस्करण को "नहीं प्रबंधित कोड" में बदलें
  11. पहचान को "ApplicationPoolIdentity" में बदलें
  12. साइट होम पेज पर जाएं फिर "प्रमाणीकरण" पर क्लिक करें
  13. बेनामी सहायता पर राइट-क्लिक करें, फिर "संपादित करें" पर क्लिक करें
  14. एप्लिकेशन पूल पहचान का चयन करें
  15. ओके पर क्लिक करें
  16. बूम!

मार्गों के लिए एक web.config जोड़ें

<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="React Routes" stopProcessing="true">
                    <match url=".*" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                        <add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="/" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

0

अनधिकृत प्राप्त करने से संबंधित एक और समस्या आईआईएस से प्रमाणीकरण सेटिंग में उपयोग किए गए प्रदाताओं से संबंधित है। मेरे मामले में मैं उस समस्या का अनुभव कर रहा था यदि मैंने विंडोज प्रमाणीकरण प्रदाता को "नेगोशिएट" के रूप में सेट किया। "NTLM" विकल्प चुने जाने के बाद पहुँच प्रदान की गई।

प्रमाणीकरण प्रदाताओं पर अधिक जानकारी

https://docs.microsoft.com/en-us/iis/configuration/system.webserver/security/authentication/windowsauthentication/providers/



0

यदि आप एप्लिकेशन पूल प्रमाणीकरण (IUSR के बजाय) के साथ काम कर रहे हैं, जो आपको करना चाहिए, तो जीन सन द्वारा चेक की यह सूची सबसे अच्छी है जिसे मैं IIS में 401 त्रुटियों से निपटने के लिए पा सकता हूं:


IIS प्रबंधक खोलें, अपनी वेबसाइट या एप्लिकेशन फ़ोल्डर पर नेविगेट करें जहां साइट तैनात है।

  1. उन्नत सेटिंग्स खोलें (यह दाहिने हाथ की क्रिया फलक पर है)।
  2. एप्लिकेशन पूल नाम को नोट करें फिर इस विंडो को बंद करें
  3. प्रमाणीकरण सेटिंग्स खोलने के लिए ऑथेंटिकेशन आइकन पर डबल क्लिक करें
  4. Windows प्रमाणीकरण अक्षम करें
  5. बेनामी प्रमाणीकरण पर राइट क्लिक करें और संपादित करें पर क्लिक करें
  6. एप्लिकेशन पूल पहचान रेडियो बटन पर क्लिक करें ठीक चुनें
  7. IIS प्रबंधक ट्री से बाईं ओर अनुप्रयोग पूल नोड का चयन करें और चरण 3 में आपके द्वारा नोट किए गए एप्लिकेशन पूल नाम का चयन करें
  8. राइट क्लिक करें और उन्नत सेटिंग्स चुनें
  9. प्रक्रिया मॉडल सेटिंग्स का विस्तार करें और ApplicationPoolIdentityfrom "बिल्ट-इन अकाउंट" ड्रॉप डाउन सूची चुनें और फिर ठीक पर क्लिक करें।
  10. एप्लिकेशन पूल उन्नत सेटिंग पृष्ठ को सहेजने और खारिज करने के लिए फिर से ठीक पर क्लिक करें
  11. एक प्रशासक कमांड लाइन खोलें (सीएमडी आइकन पर राइट क्लिक करें और "रन अस एडमिनिस्ट्रेटर" चुनें। यह आपके स्टार्ट मेनू पर कहीं होगा, शायद सहायक उपकरण के तहत।
  12. निम्न आदेश चलाएँ:

    icacls <path_to_site> /grant "IIS APPPOOL\<app_pool_name>"(CI)(OI)(M)
    

    उदाहरण के लिए:

    icacls C:\inetpub\wwwroot\mysite\ /grant "IIS APPPOOL\DEFAULTAPPPOOL":(CI)(OI)(M)
    

विशेष रूप से चरण 5. और 6. अक्सर अनदेखी की जाती हैं और वेब पर शायद ही कभी इसका उल्लेख किया जाता है।

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