Komunikat o błędzie „HTTP Error 401.1 - Unauthorized: Access is denied due to invalid credentials” wyświetlany w przypadku próby uzyskania dostępu do witryny sieci Web będącej częścią puli aplikacji usług IIS 6.0

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 871179 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Rozwiń wszystko | Zwiń wszystko

Symptomy

Podczas próby uzyskania dostępu do witryny sieci Web usług Microsoft Internet Information Services (IIS) 6.0, która została skonfigurowana tak, aby korzystała wyłącznie ze zintegrowanego uwierzytelniania systemu Windows, jest wyświetlany monit o podanie poświadczeń użytkownika. Próba zalogowania skutkuje ponownym wyświetleniem monitu o zalogowanie. Po trzeciej próbie zalogowania pojawia się następujący komunikat o błędzie:
HTTP Error 401.1 - Unauthorized: Access is denied due to invalid credentials (Błąd HTTP 401.1 — Brak autoryzacji: Odmowa dostępu w wyniku nieprawidłowych poświadczeń).

Przyczyna

Takie zachowanie może się pojawić wtedy, gdy są spełnione następujące warunki:
  • Witryna sieci Web usług IIS 6.0 należy do puli aplikacji usług IIS.
  • Pula aplikacji jest uruchomiona na koncie lokalnym lub na koncie użytkownika domeny.
  • Witryna sieci Web jest skonfigurowana tak, aby korzystała wyłącznie ze zintegrowanego uwierzytelniania systemu Windows.
W takim scenariuszu, gdy zintegrowane uwierzytelnianie systemu Windows próbuje użyć protokołu Kerberos, protokół ten może nie działać. Aby użyć uwierzytelniania Kerberos, główna nazwa usługi musi zostać zarejestrowana na koncie usługi katalogowej Active Directory, w której jest uruchomiona ta usługa. Usługa Active Directory domyślnie rejestruje nazwę komputera sieciowego systemu podstawowych operacji wejścia/wyjścia (NetBIOS). Usługa Active Directory zezwala również usłudze sieciowej lub lokalnemu kontu systemowemu na używanie protokołu Kerberos.

Rozwiązanie

Jeśli takie zachowanie występuje, gdy pula aplikacji działa na koncie lokalnym, należy wykonać kroki opisane w sekcji „Obejście problemu”.

Aby rozwiązać problem, gdy pula aplikacji działa na koncie użytkownika domeny, należy ustawić główną nazwę usługi używaną do realizacji połączenia HTTP jako nazwę NetBIOS oraz w pełni kwalifikowaną nazwę domeny (FQDN) konta użytkownika domeny, w której jest uruchomiona pula aplikacji. Aby to zrobić, wykonaj na kontrolerze domeny następujące kroki:

Ważne Główna nazwa usługi może być powiązana tylko z jednym kontem. Dlatego w przypadku użycia sugerowanego rozwiązania wszystkie inne pule aplikacji działające na kontach innych użytkowników domeny nie mogą być używane tylko ze zintegrowanym uwierzytelnianiem systemu Windows.
  1. Zainstaluj narzędzie Setspn.exe. Aby uzyskać wersję narzędzia dla systemu Microsoft Windows 2000, odwiedź następującą witrynę firmy Microsoft w sieci Web:
    http://www.microsoft.com/downloads/details.aspx?FamilyID=5fd831fd-ab77-46a3-9cfe-ff01d29e5c46&displaylang=en
    Wersja narzędzia wiersza polecenia Setspn.exe dla systemu Microsoft Windows Server 2003 jest dostępna w narzędziach obsługi systemu Windows Server 2003, które znajdują się na dysku CD z systemem Windows Server 2003. Aby zainstalować narzędzia, kliknij dwukrotnie plik Suptools.msi znajdujący się w folderze Pomoc/Narzędzia.
  2. Uruchom wiersz polecenia, a następnie zmień katalog na ten, w którym zainstalowano narzędzie Setspn.exe.
  3. W wierszu polecenia wpisz następujące polecenia. Po wpisaniu każdego polecenia należy nacisnąć klawisz ENTER:
    setspn.exe -a http/nazwa_NetBIOS_komputera_usług_IISnazwa_domeny\nazwa_użytkownika

    setspn.exe -a http/nazwa_FQDN_komputera_usług_IISnazwa_domeny\nazwa_użytkownika
    Uwaga Nazwa_użytkownika to konto użytkownika, na którym działa pula aplikacji.
Po ustawieniu głównej nazwy usługi używanej do realizacji połączenia HTTP jako konta użytkownika domeny, na którym działa pula aplikacji, można ustanowić połączenie z witryną sieci Web, a monity o podanie poświadczeń użytkownika nie będą już wyświetlane.

Obejście problemu

Aby rozwiązać ten problem w przypadku kilku pul aplikacji działających na różnych kontach użytkowników domeny, należy wymusić użycie przez usługi IIS uwierzytelniania NTLM (jeśli chce się korzystać wyłącznie ze zintegrowanego uwierzytelniania systemu Windows). Aby to zrobić, na serwerze, na którym działają usługi IIS, wykonaj następujące kroki:
  1. Uruchom wiersz polecenia.
  2. Zlokalizuj katalog zawierający plik Adsutil.vbs i przejdź do niego. Domyślnie jest to katalog C:\Inetpub\Adminscripts.
  3. Wpisz następujące polecenie, a następnie naciśnij klawisz ENTER:
    cscript adsutil.vbs set w3svc/NTAuthenticationProviders "NTLM"
  4. Aby sprawdzić, czy właściwość NtAuthenticationProviders metabazy została skonfigurowana jako NTLM, wpisz następujące polecenie, a następnie naciśnij klawisz ENTER:
    cscript adsutil.vbs get w3svc/NTAuthenticationProviders
    Powinien zostać zwrócony następujący tekst:
    NTAuthenticationProviders: (STRING) "NTLM"

Stan

Takie zachowanie jest zgodne z projektem programu.

Więcej informacji

W przypadku skonfigurowania głównej nazwy usługi wyłącznie za pomocą w pełni kwalifikowanej nazwy domeny serwera, na którym działają usługi IIS, po 30 minutach zostanie wyświetlony monit o podanie poświadczeń użytkownika. 30-minutowe opóźnienie jest spowodowane sposobem buforowania przez program Internet Explorer informacji DNS. Po 30 minutach program Internet Explorer przywraca nazwę NetBIOS. Dlatego należy zarejestrować też główną nazwę usługi za pomocą nazwy NetBIOS serwera, na którym działają usługi IIS — uniemożliwi to wyświetlanie monitu o podanie poświadczeń użytkownika. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
263558 How Internet Explorer uses the cache for DNS host entries
Aby zweryfikować zarejestrowane główne nazwy usługi dla konta użytkownika, na którym działa pula aplikacji, uruchom wiersz polecenia, wpisz następujące polecenie z katalogu, w którym zainstalowano narzędzie Setspn.exe, a następnie naciśnij klawisz ENTER:
setspn.exe -l nazwa_użytkownika
Zostanie zwrócona lista głównych nazw usługi zarejestrowanych dla konta użytkownika.

Materiały referencyjne

Aby uzyskać dodatkowe informacje o stosowaniu zintegrowanego uwierzytelniania systemu Windows z pulami aplikacji usług IIS, zapoznaj się z sekcją „Worker Process Identity Restrictions with Kerberos” w następującej witrynie sieci Web:
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/523ae943-5e6a-4200-9103-9808baa00157.mspx
Aby uzyskać dodatkowe informacje o niepowodzeniach uwierzytelniania lub niepowodzeniach kontroli dostępu w usługach IIS można pobrać narzędzie Authentication and Access Control Diagnostics 1.0. Następujący plik jest dostępny do pobrania w witrynie Microsoft Download Center:
http://www.microsoft.com/downloads/details.aspx?FamilyId=E90FE777-4A21-4066-BD22-B931F7572E9A&displaylang=en
Uwaga Narzędzie AuthDiag zostało opracowane z myślą o zapewnieniu użytkownikowi pomocy w przypadku wyświetlenia następujących komunikatów o błędach:
  • 401.1 — Logowanie nieudane
  • 401.3 ACL
Narzędzie AuthDiag może również okazać się pomocne w przypadku wystąpienia problemów z protokołem Kerberos.

Właściwości

Numer ID artykułu: 871179 - Ostatnia weryfikacja: 4 grudnia 2007 - Weryfikacja: 4.2
Informacje zawarte w tym artykule dotyczą:
  • Internetowe usługi informacyjne Microsoft 6.0
Słowa kluczowe: 
kbtshoot kbprb KB871179

Przekaż opinię

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com