Código de erro 403 ou 500 quando você se conecta a um site publicado usando o ISA Server 2004 Service Pack 2

Este artigo fornece uma solução para um erro que ocorre ao tentar se conectar a um site da Web publicado usando o ISA (Microsoft Internet Security and Acceleration) Server 2004 Service Pack 2 (SP2).

Aplica-se a: Windows Server 2003
Número de KB original: 912122

Importante

Este artigo contém informações que mostram como ajudar a reduzir as configurações de segurança ou como desativar recursos de segurança em um computador. Você pode fazer essas alterações para contornar um problema específico. Antes de fazer essas alterações, recomendamos que você avalie os riscos associados à implementação dessa solução alternativa em seu ambiente específico. Se você implementar essa solução alternativa, siga as etapas adicionais apropriadas para ajudar a proteger seu sistema.

Sintomas

Ao tentar se conectar a um site publicado usando o ISA (Microsoft Internet Security and Acceleration) Server 2004 Service Pack 2 (SP2), você recebe uma mensagem de erro. Se o ouvinte Web do ISA Server tiver a autenticação básica habilitada, você receberá a seguinte mensagem de erro:

Código de erro: 403 Proibido.
A página deve ser exibida em um canal seguro (SSL(Secure Sockets Layer)). Entre em contato com o administrador do servidor. (12211)

Se o ouvinte Web do ISA Server tiver a autenticação RADIUS ou o Microsoft Outlook Web Access Forms-Based autenticação (Cookie-auth) habilitado, você receberá a seguinte mensagem de erro:

Código de erro: 500 Erro interno do servidor.
Erro interno. (1359)

Motivo

Esse problema ocorrerá se todas as seguintes condições forem verdadeiras:

  • O ouvinte Web do ISA Server 2004 tem qualquer um dos seguintes métodos de autenticação habilitado:

    • Básica
    • RAIO
    • Forms-Based do Outlook Web Access
  • O ouvinte Web do ISA Server 2004 está configurado para ouvir o tráfego HTTP.

  • A caixa Exigir que todos os usuários autentiquem marcar está selecionada para o ouvinte Da Web ou as regras de publicação da Web se aplicam a um conjunto de usuários diferente do conjunto de usuários padrão Todos os usuários.

  • Você se conecta ao site publicado usando HTTP em vez de usando HTTPS.

Esse problema ocorre devido a uma modificação de segurança incluída no ISA Server 2004 SP2. Quando você usa a ponte HTTP-to-HTTP, o ISA Server 2004 SP2 não habilita o tráfego na porta HTTP externa se o ouvinte da Web estiver configurado para solicitar um ou mais dos seguintes tipos de credenciais:

  • Básica
  • RAIO
  • Forms-Based do Outlook Web Access

Esse comportamento ocorre porque esses tipos de credenciais devem ser criptografados. Essas credenciais não devem ser enviadas em texto claro por HTTP.

Para versões do ISA Server 2004 anteriores ao ISA Server 2004 SP2, você será solicitado a inserir credenciais em texto claro. Esse comportamento pode fazer com que as credenciais sejam transmitidas pela rede em texto claro se você não tiver implementado alguma outra forma de segurança de rede, como um acelerador SSL (Secure Sockets Layer) externo ou um túnel criptografado. O ISA Server não fornece essas formas de segurança.

O ISA Server 2004 SP2 impede que você insira credenciais em texto claro. Ao tentar fazer isso, você recebe uma mensagem de erro.

Solução alternativa

Aviso

Essa solução alternativa pode tornar seu computador ou rede mais vulnerável a ataques de usuários mal-intencionados ou softwares mal-intencionados, como vírus. Não recomendamos essa solução alternativa, mas estamos fornecendo essas informações para que você possa implementar essa solução alternativa a seu próprio critério. Você é responsável pelo uso dessa solução alternativa.

Para contornar esse problema, configure o ISA Server 2004 SP2 para se comportar como versões anteriores do ISA Server 2004.

Para fazer isso, execute o script a seguir no ISA Server 2004 em que você deseja alterar a configuração. O script define um valor chamado AllowAskBasicAuthOverNonSecureConnection em um novo parâmetro de fornecedor definido na raiz da matriz ISA Server 2004.

A Microsoft oferece exemplos de programação somente para ilustração, sem garantias expressas ou implícitas. Isso inclui, mas não está limitado a, as garantias implícitas de qualidade comercial ou conformidade para uma determinada finalidade. Este artigo supõe que você conhece a linguagem de programação que está sendo demonstrada e as ferramentas usadas nos processos de criação e depuração. Os engenheiros de suporte da Microsoft podem ajudá-lo, fornecendo a explicação da funcionalidade de determinado procedimento, mas não modificarão estes exemplos para fornecer funcionalidade adicional nem criarão procedimentos específicos para atender às suas necessidades específicas.

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