修正: HTTP 接続検証ツールが TMG 2010 で予期しないエラーを返す

適用先
Forefront Threat Management Gateway 2010 Enterprise Forefront Threat Management Gateway 2010 Standard

現象

Microsoft Forefront Threat Management Gateway 2010 の HTTP 接続検証ツールは、実際に利用可能な Web サイトのエラーを返す場合があります。 そのため、Web 公開負荷分散 (WPLB) を使用するルールは使用できない可能性があります。Threat Management Gateway では、Web ファーム内のすべてのサーバーが使用できないと誤って想定されているためです。

また、問題の検証者に対して頻繁に "接続なし" メッセージを受け取ることがあります。 これらのメッセージは次のようになります。

接続検証ツール "Name_of_Verifier" は、https://ip_host/uri に接続しようとしたときにエラーを報告しました。 理由: 接続なし。

      

接続検証ツール "Name_of_Verifier" は、https://ip_host/uri に接続しようとしたときにエラーを報告しました。 理由: 要求がタイムアウトしました。

イベント ID 10050 と 21137 は、この問題の別の兆候である場合があります。

脅威管理ゲートウェイ Microsoft 管理コンソール (MMC) で個々の接続検証ツールの状態を監視するには、[監視] メニューの [接続検証ツール] の [結果] 列を確認します。

原因

この問題は、HTTP 接続検証ツールがサーバーの検証中に別の URL にリダイレクトされた場合に発生する可能性があります。 通常、これは次のいずれかの条件に該当する場合に発生する可能性があります。

  • 宛先 URL は、別の URL にリダイレクトするように構成されています。 これは、完全に異なる URL か、構成された URL の下の相対パスのいずれかです。 この状況では、要求のサーバー名と URI の両方が更新される可能性があります。
  • 宛先 URL には、要求を詳細なエラー ページ URL にリダイレクトするエラー処理コードがあります。

このような場合、接続検証ツールの URL はリダイレクトされた URL に更新され、後の要求では更新されません。

解決策

この問題を解決するには、 Forefront Threat Management Gateway (TMG) 2010 Service Pack 2 のロールアップ 5 をインストールします。

回避策

この問題を回避するには、Threat Management Gateway の構成を変更します。 たとえば、配列の説明を変更し、これらの変更を適用します。 これにより、接続検証ツールの構成が再適用されます。

注 この回避策は一時的なものであり、接続検証ツールの URL が更新される原因となった元の条件が繰り返される可能性があります。

状態

Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。

追加情報

Forefront Threat Management Gateway 2010 Service Pack 2 のロールアップ 5 では、接続検証ツールが HTTP リダイレクトを処理する方法を制御するためのサポートが追加されます。 既定では、接続検証ツールはリダイレクトに従うのではなく、接続検証ツールの構成で指定された URL のみを照会します。

注 次のスクリプトは、新しい既定の動作を変更する場合にのみ必要です。

  1. 次のスクリプトをテキスト ファイルにコピーし、ファイルを SetConnectivityVerifierHttpRedirectProcessingOptions.vbs として保存します。

    'Define the constants needed.
    Const strVpsGUID = "{143F5698-103B-12D4-FF34-1F34767DEABC}"
    Const strVpsPropertyName = "ConnectivityVerifierHttpRedirectProcessingOptions"
    Const Error_FileNotFound = &H80070002
    Set objArgs = wscript.Arguments
    fInvalidParameterValue = True
    if objArgs.Count > 0 then
        uIntParamValue = objArgs(0)
        fInvalidParameterValue = (uIntParamValue < 0)
    end if
    if objArgs.Count <> 1 or fInvalidParameterValue then
        wscript.echo "Usage: SetConnectivityVerifierHttpRedirectProcessingOptions.vbs <options>"
        wscript.echo
        wscript.echo "Exactly one nonnegative numeric parameter is accepted"
        wscript.Quit 2
    end if
    set objArray = CreateObject("FPC.Root").GetContainingArray()
    Set objVPSet = OpenVPSet(objArray, strVpsGUID)
    objVPSet.Value(strVpsPropertyName) = uIntParamValue
    objArray.Save
    function OpenVPSet(objParent, strVpsGUID)
        Set objVPSets = objParent.VendorParametersSets
        On Error Resume Next
        Set OpenVPSet = objVPSets.Item(strVpsGUID)
        ' Save the Err properties in case it needs to be re-raised
        errNumber      = Err.Number
        errSource      = Err.Source
        errDescription = Err.Description
        errHelpFile    = Err.HelpFile
        errHelpContext = Err.HelpContext
    
        On Error GoTo 0
    
        if errNumber = Error_FileNotFound Then
            Set OpenVPSet = objVPSets.Add(strVpsGUID)
        Elseif errNumber < 0 Then
            ' An error other than "file not found" occurred -- re-raise the error,
            ' this time not under "On Error Resume Next"
            Err.Raise errNumber, errSource, errDescription, errHelpFile, errHelpContext
        End If
    end function
    
  2. 次の一覧から必要な動作を選択し、管理コマンド プロンプトでコマンドを実行します。

    • オプション 1: 両方の機能のアクティブを解除する (ロールアップ 5 より前の機能に戻す)

      cscript.exe SetConnectivityVerifierHttpRedirectProcessingOptions.vbs 0"

    • オプション 2: 接続検証ツールが HTTP リダイレクトに従わないようにする (既定値)

      cscript.exe SetConnectivityVerifierHttpRedirectProcessingOptions.vbs 1

    • オプション 3: 要求が送信されるたびに接続検証ツールの URL を更新する

      cscript.exe SetConnectivityVerifierHttpRedirectProcessingOptions.vbs 2

    • オプション 4: オプション 2 と 3 の両方の機能を有効にする

      cscript.exe SetConnectivityVerifierHttpRedirectProcessingOptions.vbs 3

参考資料

マイクロソフトでソフトウェア更新プログラムの説明に使用する用語集を参照してください。