Код ошибки 403 или 500 при подключении к веб-сайту, опубликованному с помощью ISA Server 2004 с пакетом обновления 2 (SP2)

В этой статье описывается решение ошибки, возникающей при попытке подключиться к веб-сайту, опубликованному с помощью Microsoft Internet Security and Acceleration (ISA) Server 2004 с пакетом обновления 2 (SP2).

Применяется к: Windows Server 2003
Исходный номер базы знаний: 912122

Важно!

В этой статье содержатся сведения о том, как снизить параметры безопасности или отключить функции безопасности на компьютере. Эти изменения можно внести, чтобы обойти определенную проблему. Перед внесением этих изменений рекомендуется оценить риски, связанные с реализацией этого обходного решения в конкретной среде. Если вы реализуете это обходное решение, выполните все необходимые дополнительные действия для защиты системы.

Симптомы

При попытке подключиться к веб-сайту, опубликованному с помощью Microsoft Internet Security and Acceleration (ISA) Server 2004 с пакетом обновления 2 (SP2), появляется сообщение об ошибке. Если для веб-прослушивателя ISA Server включена обычная проверка подлинности, появляется следующее сообщение об ошибке:

Код ошибки: 403 Запрещено.
Страница должна просматриваться по защищенному каналу (SSL). Обратитесь к администратору сервера. (12211)

Если в веб-прослушивателе ISA Server включена проверка подлинности RADIUS или microsoft Outlook Web Access Forms-Based проверка подлинности (проверка подлинности файлов cookie), появляется следующее сообщение об ошибке:

Код ошибки: 500 Внутренняя ошибка сервера.
Произошла внутренняя ошибка. (1359)

Причина

Эта проблема возникает, если выполняются все следующие условия:

  • Веб-прослушиватель ISA Server 2004 имеет один из следующих методов проверки подлинности:

    • Обычный
    • РАДИУС
    • Outlook Web Access Forms-Based
  • Веб-прослушиватель ISA Server 2004 настроен для прослушивания трафика HTTP.

  • Для веб-прослушивателя установлен флажок Требовать проверку подлинности всех пользователей проверка или правила веб-публикации применяются к набору пользователей, отличному от набора пользователей по умолчанию Все пользователи.

  • Подключение к опубликованному веб-сайту выполняется по протоколу HTTP, а не по протоколу HTTPS.

Эта проблема возникает из-за изменения безопасности, включенного в ISA Server 2004 с пакетом обновления 2 (SP2). При использовании моста HTTP-to-HTTP ISA Server 2004 с пакетом обновления 2 (SP2) не включает трафик на внешнем HTTP-порту, если веб-прослушиватель настроен на запрос одного или нескольких из следующих типов учетных данных:

  • Обычный
  • РАДИУС
  • Outlook Web Access Forms-Based

Это происходит из-за того, что эти типы учетных данных должны быть зашифрованы. Эти учетные данные не должны отправляться в виде ясного текста по протоколу HTTP.

Для версий ISA Server 2004, более ранних, чем ISA Server 2004 с пакетом обновления 2 (SP2), вам будет предложено ввести учетные данные в виде обычного текста. Это может привести к передаче учетных данных по сети в виде ясного текста, если вы не реализовали какую-либо другую форму сетевой безопасности, например внешний ускоритель SSL или зашифрованный туннель. ISA Server не обеспечивает эти формы безопасности.

ISA Server 2004 с пакетом обновления 2 (SP2) запрещает ввод учетных данных в виде ясного текста. При попытке сделать это появляется сообщение об ошибке.

Обходной путь

Предупреждение

При использовании этого обходного решения компьютер или сеть могут стать более уязвимыми для атак злоумышленников или вредоносных программ, например вирусов. Мы не рекомендуем это обходное решение, но предоставляем эти сведения, чтобы вы могли реализовать это решение по своему усмотрению. Ответственность за использование этого обходного пути несет пользователь.

Чтобы обойти эту проблему, настройте ISA Server 2004 с пакетом обновления 2 (SP2) так же, как и в более ранних версиях ISA Server 2004.

Для этого выполните следующий скрипт на ISA Server 2004, где необходимо изменить конфигурацию. Скрипт задает значение с именем AllowAskBasicAuthOverNonSecureConnection в новых параметрах поставщика, заданных в корне массива ISA Server 2004.

Корпорация Майкрософт предоставляет примеры программирования только в целях демонстрации без явной или подразумеваемой гарантии. Данное положение включает, но не ограничивается этим, подразумеваемые гарантии товарной пригодности или соответствия отдельной задаче. Эта статья предполагает, что пользователь знаком с представленным языком программирования и средствами, используемыми для создания и отладки процедур. Специалисты технической поддержки Майкрософт могут пояснить работу той или иной процедуры, но модификация примеров и их адаптация к задачам разработчика не предусмотрена.

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