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

この記事では、Microsoft Internet Security and Acceleration (ISA) Server 2004 Service Pack 2 (SP2) を使用して公開されている Web サイトに接続しようとすると発生するエラーの解決策について説明します。

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

重要

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

現象

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

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

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

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

原因

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

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

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

  • [すべてのユーザーに認証を要求するチェック] ボックスが Web リスナーに対して選択されているか、Web 公開規則が既定の [すべてのユーザー] ユーザー セット以外のユーザー セットに適用されます。

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

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

  • Basic
  • 半径
  • Outlook Web 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