ISA Server 2004 서비스 팩 2를 사용하여 게시된 웹 사이트에 연결하는 경우 오류 코드 403 또는 500

이 문서에서는 MICROSOFT ISA(인터넷 보안 및 가속) 서버 2004 SP2(서비스 팩 2)를 사용하여 게시된 웹 사이트에 연결하려고 할 때 발생하는 오류에 대한 솔루션을 제공합니다.

적용 대상: Windows Server 2003
원래 KB 번호: 912122

중요

이 문서에는 보안 설정을 낮추는 방법 또는 컴퓨터에서 보안 기능을 끄는 방법을 보여 주는 정보가 포함되어 있습니다. 특정 문제를 해결하기 위해 이러한 변경을 수행할 수 있습니다. 이러한 변경을 하기 전에 특정 환경에서 이 해결 방법을 구현하는 것과 관련된 위험을 평가하는 것이 좋습니다. 이 해결 방법을 구현하는 경우 시스템을 보호하는 데 도움이 되는 적절한 추가 단계를 수행합니다.

증상

Microsoft ISA(인터넷 보안 및 가속) 서버 2004 SP2(서비스 팩 2)를 사용하여 게시된 웹 사이트에 연결하려고 하면 오류 메시지가 표시됩니다. ISA 서버 웹 수신기에 기본 인증이 사용하도록 설정된 경우 다음 오류 메시지가 표시됩니다.

오류 코드: 403 사용할 수 없습니다.
보안 채널(SSL(Secure Sockets Layer))을 통해 페이지를 볼 수 있어야 합니다. 서버 관리자에게 문의하세요. (12211)

ISA 서버 웹 수신기에 RADIUS 인증 또는 Microsoft Outlook Web Access Forms-Based 인증(쿠키 인증)이 사용하도록 설정된 경우 다음 오류 메시지가 표시됩니다.

오류 코드: 500 내부 서버 오류입니다.
내부 오류가 발생했습니다. (1359)

원인

이 문제는 다음 조건이 모두 충족되는 경우에 발생합니다.

  • ISA Server 2004 웹 수신기에는 다음 인증 방법 중 하나가 활성화되어 있습니다.

    • Basic
    • Radius
    • Outlook Web Access Forms-Based
  • ISA Server 2004 웹 수신기는 HTTP 트래픽을 수신 대기하도록 구성됩니다.

  • 웹 수신기에 대해 모든 사용자가 검사 인증하도록 요구 상자가 선택되었거나 기본 모든 사용자 사용자 사용자 집합이 아닌 사용자 집합에 웹 게시 규칙이 적용됩니다.

  • HTTPS를 사용하는 대신 HTTP를 사용하여 게시된 웹 사이트에 연결합니다.

이 문제는 ISA Server 2004 SP2에 포함된 보안 수정으로 인해 발생합니다. HTTP 간 브리징을 사용하는 경우 웹 수신기가 다음 종류의 자격 증명 중 하나 이상을 요청하도록 구성된 경우 ISA Server 2004 SP2는 외부 HTTP 포트에서 트래픽을 사용하도록 설정하지 않습니다.

  • Basic
  • Radius
  • Outlook Web Access Forms-Based

이러한 종류의 자격 증명을 암호화해야 하므로 이 동작이 발생합니다. 이러한 자격 증명은 HTTP를 통해 명확한 텍스트로 전송되어서는 안 됩니다.

ISA Server 2004 SP2 이전 버전의 경우 명확한 텍스트로 자격 증명을 입력하라는 메시지가 표시됩니다. 이 동작으로 인해 외부 SSL(Secure Sockets Layer) 가속기 또는 암호화된 터널과 같은 다른 형태의 네트워크 보안을 구현하지 않은 경우 네트워크를 통해 명확한 텍스트로 자격 증명이 전송될 수 있습니다. ISA 서버는 이러한 형태의 보안을 제공하지 않습니다.

ISA Server 2004 SP2를 사용하면 명확한 텍스트로 자격 증명을 입력할 수 없게 됩니다. 이 작업을 수행하려고 하면 오류 메시지가 표시됩니다.

해결 방법

경고

이 해결 방법을 사용하면 컴퓨터 또는 네트워크가 악의적인 사용자나 바이러스 등의 악성 소프트웨어에 의한 공격에 보다 취약해집니다. 이 해결 방법은 권장하지 않지만 사용자의 재량에 따라 이 해결 방법을 구현할 수 있도록 이 정보를 제공합니다. 그러므로 이 해결 방법을 사용하여 발생하는 모든 위험은 전적으로 사용자 책임입니다.

이 문제를 해결하려면 ISA Server 2004 SP2가 이전 버전의 ISA Server 2004처럼 작동하도록 구성합니다.

이렇게 하려면 구성을 변경하려는 ISA Server 2004에서 다음 스크립트를 실행합니다. 이 스크립트는 ISA Server 2004 배열의 루트 아래에 설정된 새 공급업체 매개 변수에서 AllowAskBasicAuthOverNonSecureConnection 이라는 값을 설정합니다.

Microsoft에서 제공하는 프로그래밍 예제는 예시를 위한 것일 뿐이며 이와 관련하여 명시적이거나 묵시적인 어떠한 보증도 하지 않습니다. 이는 상품성이나 특정 목적에 대한 적합성의 묵시적인 보증을 포함하며 이에 제한되지 않습니다. 이 문서에서는 예제에 사용되고 있는 프로그래밍 언어와 프로시저를 만들고 디버깅하는 데 사용되는 도구를 사용자가 잘 알고 있는 것으로 가정합니다. Microsoft 지원 엔지니어는 사용자에게 도움이 되도록 특정 프로시저에 대한 기능을 설명할 수 있지만 사용자의 특정 요구 사항에 맞도록 예제를 수정하여 추가 기능을 제공하거나 프로시저를 구성하지는 않습니다.

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