ISA Server 2004 Service Pack 2 を使用して発行された Web サイトに接続すると、エラー コード 403 または 500 が表示される

この記事では、Microsoft Internet Security and Acceleration (ISA) Server 2004 Service Pack 2 (SP2) を使用して公開されている Web サイトに接続しようとするときに発生するエラーに対するソリューションを提供します。

適用対象:  WindowsServer 2003
元の KB 番号:   912122

重要

この記事では、セキュリティ設定を低くする方法、またはコンピューターでセキュリティ機能をオフにする方法を示す情報を示します。 これらの変更を行って、特定の問題を回避できます。 これらの変更を行う前に、特定の環境でのこの回避策の実装に関連するリスクを評価することをお勧めします。 この回避策を実装する場合は、システムの保護に役立つ適切な追加の手順を実行します。

現象

Microsoft Internet Security and Acceleration (ISA) Server 2004 Service Pack 2 (SP2) を使用して公開されている Web サイトに接続すると、エラー メッセージが表示されます。 ISA Server Web リスナーで基本認証が有効になっている場合は、次のエラー メッセージが表示されます。

エラー コード: 403 禁止されています。
ページは、セキュリティで保護されたチャネル (SSL )で表示Secure Sockets Layer必要があります。 サーバー管理者に問い合わせてください。 (12211)

ISA Server Web リスナーに RADIUS 認証または Microsoft Outlook Web Access Forms-Based 認証 (Cookie-auth) が有効になっている場合は、次のエラー メッセージが表示されます。

エラー コード: 500 内部サーバー エラー。
内部エラーが発生しました。 (1359)

原因

この問題は、次のすべての条件が満たされている場合に発生します。

  • ISA Server 2004 Web リスナーには、次のいずれかの認証方法が有効になっています。

    • 基本
    • RADIUS
    • OutlookWeb Access Forms-Based
  • ISA Server 2004 Web リスナーは、HTTP トラフィックをリッスンするように構成されています。

  • Web リスナーに対して [すべてのユーザーに認証を要求する] チェック ボックスがオンか、既定の [すべてのユーザー] ユーザー セット以外のユーザー セットに Web 発行ルール が適用されます

  • 公開された Web サイトに接続するには、HTTPS を使用する代わりに HTTP を使用します。

この問題は、ISA Server 2004 SP2 に含まれるセキュリティ変更のために発生します。 HTTP-to-HTTP ブリッジングを使用する場合、Web リスナーが次の 1 つ以上の種類の資格情報を要求するように構成されている場合、ISA Server 2004 SP2 は外部 HTTP ポート上のトラフィックを有効にしません。

  • 基本
  • RADIUS
  • OutlookWeb Access Forms-Based

この動作は、これらの種類の資格情報を暗号化する必要がある場合に発生します。 これらの資格情報は、HTTP を使用してクリア テキストで送信する必要があります。

ISA Server 2004 SP2 より前の ISA Server 2004 バージョンの場合は、クリア テキストで資格情報を入力するように求めるメッセージが表示されます。 この動作により、外部 Secure Sockets Layer (SSL) アクセラレータや暗号化されたトンネルなど、他の形式のネットワーク セキュリティを実装していない場合、資格情報がクリア テキストでネットワーク経由で送信される可能性があります。 ISA Server では、これらの形式のセキュリティは提供されません。

ISA Server 2004 SP2 では、クリア テキストで資格情報を入力できません。 これを実行すると、エラー メッセージが表示されます。

回避策

警告

この回避策により、コンピューターまたはネットワークが、悪意のあるユーザーや、ウイルスなどの悪意のあるソフトウェアによる攻撃を受けやすくなる可能性があります。 この回避策は推奨しませんが、この回避策を独自の裁量で実装できるよう、この情報を提供しています。 この回避策は、自己の責任において使用してください。

この問題を回避するには、ISA Server 2004 SP2 を以前のバージョンの ISA Server 2004 と同様に動作することを構成します。

これを行うには、構成を変更する ISA Server 2004 で次のスクリプトを実行します。 このスクリプトは、ISA Server 2004 配列のルートの下に設定された新しいベンダー パラメーターで AllowAskBasicAuthOverNonSecureConnection という名前の値を設定します。

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