Kod błędu 403 lub 500 podczas nawiązywania połączenia z witryną sieci Web opublikowaną przy użyciu programu ISA Server 2004 z dodatkiem Service Pack 2

Ten artykuł zawiera rozwiązanie błędu występującego podczas próby nawiązania połączenia z witryną sieci Web opublikowaną przy użyciu programu Microsoft Internet Security and Acceleration (ISA) Server 2004 Service Pack 2 (SP2).

Dotyczy: Windows Server 2003
Oryginalny numer KB: 912122

Ważna

Ten artykuł zawiera informacje, które pokazują, jak pomóc obniżyć ustawienia zabezpieczeń lub jak wyłączyć funkcje zabezpieczeń na komputerze. Możesz wprowadzić te zmiany, aby obejść określony problem. Przed wprowadzeniem tych zmian zalecamy ocenę ryzyka związanego z zaimplementowaniem tego obejścia w określonym środowisku. Jeśli zaimplementujesz to obejście, wykonaj wszelkie odpowiednie dodatkowe kroki, aby chronić system.

Symptomy

Podczas próby nawiązania połączenia z witryną sieci Web opublikowaną przy użyciu programu Microsoft Internet Security and Acceleration (ISA) Server 2004 Service Pack 2 (SP2) zostanie wyświetlony komunikat o błędzie. Jeśli odbiornik sieci Web serwera ISA ma włączone uwierzytelnianie podstawowe, zostanie wyświetlony następujący komunikat o błędzie:

Kod błędu: 403 Zabronione.
Strona musi być wyświetlana za pośrednictwem bezpiecznego kanału (Secure Sockets Layer (SSL)). Skontaktuj się z administratorem serwera. (12211)

Jeśli odbiornik sieci Web serwera ISA ma włączone uwierzytelnianie usługi RADIUS lub uwierzytelnianie programu Microsoft Outlook Web Access Forms-Based (cookie-auth), zostanie wyświetlony następujący komunikat o błędzie:

Kod błędu: 500 Wewnętrzny błąd serwera.
Wystąpił błąd wewnętrzny. (1359)

Przyczyna

Ten problem występuje, jeśli spełnione są wszystkie następujące warunki:

  • Odbiornik sieci Web serwera ISA Server 2004 ma włączoną jedną z następujących metod uwierzytelniania:

    • Basic
    • PROMIEŃ
    • Program Outlook Web Access Forms-Based
  • Odbiornik sieci Web isa server 2004 jest skonfigurowany do nasłuchiwania ruchu HTTP.

  • Pole wyboru Wymagaj uwierzytelniania wszystkich użytkowników jest zaznaczone dla odbiornika sieci Web lub reguł publikowania w sieci Web ma zastosowanie do zestawu użytkowników innego niż domyślny zestaw użytkowników Wszyscy użytkownicy .

  • Połączenie z opublikowaną witryną sieci Web jest nawiązywane przy użyciu protokołu HTTP, a nie przy użyciu protokołu HTTPS.

Ten problem występuje z powodu modyfikacji zabezpieczeń dołączonej do programu ISA Server 2004 SP2. Jeśli używasz mostkowania HTTP-to-HTTP, program ISA Server 2004 SP2 nie włącza ruchu na zewnętrznym porcie HTTP, jeśli odbiornik sieci Web jest skonfigurowany do żądania co najmniej jednego z następujących rodzajów poświadczeń:

  • Basic
  • PROMIEŃ
  • Program Outlook Web Access Forms-Based

To zachowanie występuje, ponieważ tego rodzaju poświadczenia powinny być szyfrowane. Te poświadczenia nie powinny być wysyłane w formie zwykłego tekstu za pośrednictwem protokołu HTTP.

W przypadku wersji isa server 2004, które są starsze niż ISA Server 2004 SP2, zostanie wyświetlony monit o wprowadzenie poświadczeń w formie zwykłego tekstu. Takie zachowanie może spowodować przesyłanie poświadczeń przez sieć w postaci zwykłego tekstu, jeśli nie zaimplementowano innej formy zabezpieczeń sieci, takiej jak zewnętrzny akcelerator protokołu Secure Sockets Layer (SSL) lub zaszyfrowany tunel. Serwer ISA nie zapewnia tych form zabezpieczeń.

Program ISA Server 2004 SP2 uniemożliwia wprowadzanie poświadczeń w formie zwykłego tekstu. Podczas próby wykonania tej próby zostanie wyświetlony komunikat o błędzie.

Obejście problemu

Ostrzeżenie

To obejście może sprawić, że komputer lub sieć będą bardziej narażone na ataki złośliwych użytkowników lub złośliwego oprogramowania, takiego jak wirusy. Nie zalecamy tego obejścia, ale udostępniamy te informacje, aby można było zaimplementować to obejście według własnego uznania. To obejście użytkownicy stosują na własną odpowiedzialność.

Aby obejść ten problem, skonfiguruj program ISA Server 2004 SP2 tak, aby zachowywał się jak wcześniejsze wersje programu ISA Server 2004.

W tym celu uruchom następujący skrypt na serwerze ISA Server 2004, w którym chcesz zmienić konfigurację. Skrypt ustawia wartość o nazwie AllowAskBasicAuthOverNonSecureConnection w nowych parametrach dostawcy ustawionych w katalogu głównym macierzy ISA Server 2004.

Firma Microsoft podaje przykłady programowania tylko dla celów ilustracyjnych, nie udzielając żadnej rękojmi, wyrażonej wprost ani dorozumianej, w tym także, ale nie tylko, dorozumianej rękojmi co do przydatności handlowej lub do określonych celów. W tym artykule zakłada się, że czytelnik zna demonstrowany język programowania oraz narzędzia używane do tworzenia i debugowania procedur. Wykwalifikowani pracownicy pomocy technicznej firmy Microsoft mogą pomóc w wyjaśnieniu, jak działa określona procedura, ale nie będą modyfikować tych przykładów ani dodawać żadnych funkcji i konstruować nowych procedur w celu dostosowania ich do określonych potrzeb użytkownika.

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' Copyright (c) Microsoft Corporation. All rights reserved.
' THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE
' RISK OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE
' USER. USE AND REDISTRIBUTION OF THIS CODE, WITH OR WITHOUT MODIFICATION, IS
' HEREBY PERMITTED.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' This script adds a new VendorParametersSets under the array root.
' add a new VendorParametersSet and add a value name "AllowAskBasicAuthOverNonSecureConnection" set to 1.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Sub AddAllowAskBasicAuthOverNonSecureConnection()

    ' Create the root object.
    Dim root  ' The FPCLib.FPC root object
    Set root = CreateObject("FPC.Root")

    ' Declare the other objects that are required.
    Dim array       ' An FPCArray object
    Dim VendorSets  ' An FPCVendorParametersSets collection
    Dim VendorSet   ' An FPCVendorParametersSet object

    ' Get references to the array object
    ' and the network rules collection.
    Set array = root.GetContainingArray
    Set VendorSets = array.VendorParametersSets

    On Error Resume Next
    Set VendorSet = VendorSets.Item( "{143F5698-103B-12D4-FF34-1F34767DEabc}" )

    If Err.Number <> 0 Then
        Err.Clear

        ' Add the item
        Set VendorSet = VendorSets.Add( "{143F5698-103B-12D4-FF34-1F34767DEabc}" )
        CheckError
        WScript.Echo "New VendorSet added... " & VendorSet.Name

    Else
        WScript.Echo "Existing VendorSet found... value- " &  VendorSet.Value("AllowAskBasicAuthOverNonSecureConnection")
    End If

    if VendorSet.Value("AllowAskBasicAuthOverNonSecureConnection") <> 1 Then

        Err.Clear
        VendorSet.Value("AllowAskBasicAuthOverNonSecureConnection") = 1

        If Err.Number <> 0 Then
            CheckError
        Else
            VendorSets.Save false, true
            CheckError

            If Err.Number = 0 Then
                WScript.Echo "Done, saved!"
            End If
        End If
    Else
        WScript.Echo "Done, no change!"
    End If

End Sub

Sub CheckError()

    If Err.Number <> 0 Then
        WScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.Description
        Err.Clear
    End If

End Sub

AddAllowAskBasicAuthOverNonSecureConnection