Felkod 403 eller 500 när du ansluter till en webbplats som publiceras med hjälp av ISA Server 2004 Service Pack 2

Den här artikeln innehåller en lösning på ett fel som uppstår när du försöker ansluta till en webbplats som publiceras med hjälp av Microsoft Internet Security and Acceleration (ISA) Server 2004 Service Pack 2 (SP2).

Gäller för: Windows Server 2003
Ursprungligt KB-nummer: 912122

Viktigt

Den här artikeln innehåller information som visar hur du kan sänka säkerhetsinställningarna eller inaktivera säkerhetsfunktioner på en dator. Du kan göra dessa ändringar för att kringgå ett specifikt problem. Innan du gör dessa ändringar rekommenderar vi att du utvärderar de risker som är associerade med att implementera den här lösningen i din miljö. Om du implementerar den här lösningen kan du vidta lämpliga ytterligare åtgärder för att skydda systemet.

Symptom

När du försöker ansluta till en webbplats som publiceras med hjälp av Microsoft Internet Security and Acceleration (ISA) Server 2004 Service Pack 2 (SP2) får du ett felmeddelande. Om ISA Server-webblyssnaren har Grundläggande autentisering aktiverat får du följande felmeddelande:

Felkod: 403 Förbjudet.
Sidan måste visas över en säker kanal (Secure Sockets Layer (SSL)). Kontakta serveradministratören. (12211)

Om ISA Server-webblyssnaren har RADIUS-autentisering eller Microsoft Outlook Web Access Forms-Based-autentisering (Cookie-auth) aktiverat får du följande felmeddelande:

Felkod: 500 Internt serverfel.
Ett internt fel uppstod. (1359)

Orsak

Det här problemet uppstår om alla följande villkor är uppfyllda:

  • ISA Server 2004-webblyssnaren har någon av följande autentiseringsmetoder aktiverade:

    • Basic
    • RADIE
    • Outlook Web Access-Forms-Based
  • ISA Server 2004-webblyssnaren är konfigurerad för att lyssna efter HTTP-trafik.

  • Kryssrutan Kräv att alla användare ska autentiseras är markerad för webblyssnaren, eller så gäller reglerna för webbpublicering för en annan användaruppsättning än standardanvändaruppsättningen Alla användare .

  • Du ansluter till den publicerade webbplatsen med http i stället för https.

Det här problemet uppstår på grund av en säkerhetsändring som ingår i ISA Server 2004 SP2. När du använder HTTP-till-HTTP-bryggning aktiverar ISA Server 2004 SP2 inte trafik på den externa HTTP-porten om webblyssnaren har konfigurerats för att begära en eller flera av följande typer av autentiseringsuppgifter:

  • Basic
  • RADIE
  • Outlook Web Access-Forms-Based

Det här beteendet beror på att den här typen av autentiseringsuppgifter ska krypteras. Dessa autentiseringsuppgifter bör inte skickas i klartext via HTTP.

För ISA Server 2004-versioner som är tidigare än ISA Server 2004 SP2 uppmanas du att ange autentiseringsuppgifter i klartext. Det här beteendet kan göra att autentiseringsuppgifterna överförs via nätverket i klartext om du inte har implementerat någon annan form av nätverkssäkerhet, till exempel en extern SSL-accelerator (Secure Sockets Layer) eller en krypterad tunnel. ISA Server tillhandahåller inte dessa säkerhetsformer.

ISA Server 2004 SP2 förhindrar att du anger autentiseringsuppgifter i klartext. När du försöker göra detta får du ett felmeddelande.

Lösning

Varning

Den här lösningen kan göra din dator eller ditt nätverk mer sårbart för angrepp från skadliga användare eller av skadlig programvara som virus. Vi rekommenderar inte den här lösningen men tillhandahåller den här informationen så att du kan implementera den här lösningen efter eget gottfinnande. Använd den här lösningen på egen risk.

Du kan undvika det här problemet genom att konfigurera ISA Server 2004 SP2 så att det fungerar som tidigare versioner av ISA Server 2004.

Det gör du genom att köra följande skript på ISA Server 2004 där du vill ändra konfigurationen. Skriptet anger ett värde med namnet AllowAskBasicAuthOverNonSecureConnection i en ny leverantörsparametrar som anges under roten för ISA Server 2004-matrisen.

Microsoft tillhandahåller programmeringsexempel enbart i förklarande syfte och gör inga utfästelser, varken uttryckligen eller underförstått. Detta omfattar men begränsas inte till underförstådd garanti för säljbarhet eller lämplighet för ett visst syfte. I denna artikel förutsätts att du känner till det programmeringsspråk som demonstreras och de verktyg som används för att skapa och felsöka procedurer. Microsofts supportexperter kan hjälpa till att förklara funktionerna i en viss procedur, men de kommer inte att ändra dessa exempel för att tillhandahålla extra funktioner eller konstruera procedurer för att uppfylla dina specifika behov.

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' 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