FIX: POST permintaan ke server web yang menjalankan Forefront Threat Management Gateway 2010 mungkin gagal

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 2596444 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

GEJALA

Pertimbangkan skenario berikut ini:
  • Anda memiliki server yang menjalankan Microsoft Forefront Threat Management Gateway (TMG) 2010.
  • TMG server dikonfigurasi sebagai web server.
  • TMG web pendengar menggunakan otentikasi berbasis bentuk bersama NTLM delegasi ke server web diterbitkan.
  • Ada posting permintaan ke TMG web server.
Dalam skenario ini, permintaan POST mungkin gagal. Ini dapat menyebabkan berbagai masalah aplikasi yang bergantung pada jenis posting permintaan yang gagal.

PENYEBAB

Masalah ini terjadi jika kondisi berikut ini benar:
  • Otentikasi berbasis bentuk TMG sedang digunakan.
  • Delegasi NTLM dikonfigurasi dalam aturan penerbitan TMG untuk mendelegasikan otentikasi ke server web diterbitkan.
  • ISA mengirim permintaan ke server web pada koneksi yang sudah dikonfirmasi.
  • Web server menanggapi dengan 401.
Ketika delegasi NTLM sedang digunakan, TMG mengotentikasi sambungan ke server web pada permintaan pertama ke server web pada hubungan itu. Otentikasi kemudian dimasukkan pada sambungan sehingga kemudian permintaan tidak harus memiliki reauthentication.

Jika permintaan dikirim ke server web pada koneksi yang sudah dikonfirmasi, web server dapat merespon dengan permintaan otentikasi 401 tak terduga. Masalah ini dapat terjadi ketika permintaan yang dilayani oleh renang aplikasi yang berbeda pada web server, karena IIS tidak bertahan otentikasi di aplikasi renang.

Ketika digunakan otentikasi berbasis bentuk, TMG akan menangani 401 permintaan tak terduga oleh mengarahkan pengguna kembali ke sumberdaya yang awalnya diminta dan dengan menambahkan tag AuthResend ke URL. Ketika klien membuat permintaan kedua, TMG menentukan bahwa permintaan kebutuhan reauthentication oleh AuthResend tag dan kemudian menghapus AuthResend tag sebelum permintaan dikirim ke web server.

Namun, redirect tidak termasuk metode HTTP, dan klien akan membuat sebuah GET permintaan setelah redirect. Oleh karena itu, permintaan POST dan badan posting tidak dikirim ke web server.

Alat seperti Strace, HTTPWatch, atau Fiddler dapat digunakan pada klien untuk menentukan apakah TMG mengirimkan pengalihan yang memiliki AuthResend tag dalam menanggapi permintaan POST. Sebagai contoh, redirect permintaan URL http://domain/test.asp akan menyerupai berikut: http://domain/test.asp&authResendNNN

TMG web proxy log tidak menunjukkan AuthResend tag karena tag dihapus dari URL sebelum URL dikirimkan ke web server dan oleh karena itu juga tidak dicatat.

Perilaku ini juga dapat dilihat untuk mendapatkan permintaan. Namun, perilaku tidak akan menyebabkan masalah, karena arahan ulang akan dikirim ulang sebagai sebuah GET permintaan, dan ini tidak menyebabkan masalah yang sama.

PEMECAHAN MASALAH

Ada pengaturan internal yang dapat mengatur pada aturan penerbitan untuk memberitahu TMG untuk secara otomatis reauthenticate non-GET permintaan. Hal ini untuk menghindari 401 permintaan tak terduga dari web server.

Secara default, pada TMG Paket Layanan 2 pengaturan ini diaktifkan pada web penerbitan aturan yang memiliki otentikasi berbasis bentuk di web pendengar dan yang menggunakan NTLM delegasi.

Untuk mengatasi masalah ini, instal paket layanan yang dijelaskan di artikel Basis Pengetahuan Microsoft berikut:
2555840 Deskripsi paket layanan 2 untuk Microsoft Forefront Threat Management Gateway 2010

STATUS

Microsoft telah mengkonfirmasi bahwa ini adalah masalah di dalam produk Microsoft sebagaimana tercantum di bagian "Berlaku untuk".

INFORMASI LEBIH LANJUT

Untuk mengatasi masalah ini pada ISA 2006 atau pada TMG tanpa Paket Layanan 2, Anda dapat menggunakan script berikut untuk menetapkan internal parameter pada aturan penerbitan web tertentu. Secara default, ini adalah pengaturan yang memungkinkan TMG Paket Layanan 2.

Untuk menggunakan script, menyalinnya ke Notepad, dan kemudian menyimpannya sebagai file .vbs pada salah satu anggota array.

Edit baris berikut dalam naskah, menggantikan ReplaceRuleNameHere dengan nama aturan penerbitan web yang relevan:
argRuleName = "ReplaceRuleNameHere"
Kemudian menjalankan script berikut di salah satu array anggota dalam array:
argRuleName = "ReplaceRuleNameHere"
argParamName = "SendLogonOn401"
argVal = "true"

Set rule = CreateObject("FPC.Root").GetContainingArray.ArrayPolicy.PolicyRules.Item(argRuleName)
Set VendorSets = rule.VendorParametersSets

On Error Resume Next
Set VendorSet = VendorSets.Item( "{5e302ed5-f5d5-4fad-9b8a-01c72e1569f3}" )
If Err.Number <> 0 Then
Err.Clear
Set VendorSet = VendorSets.Add( "{5e302ed5-f5d5-4fad-9b8a-01c72e1569f3}" )
CheckError
WScript.Echo "No existing VendorSet."
Else
WScript.Echo "Existing VendorSet found. Values in it:"
for each name in VendorSet.allNames
WScript.Echo " ", name, "=", VendorSet.Value(name)
next
WScript.Echo "-------------------------------------"
End If

On Error GoTo 0

On Error Resume Next
valType = "Int" : Val = CInt(argVal)
If Err.Number <> 0 Then
Err.Clear
valType = "Boolean" : Val = CBool(argVal)
If Err.Number <> 0 Then
Err.Clear
valType = "String" : Val = CStr(argVal)
End If
End If

WScript.Echo "Setting", argParamName, "=", Val, "(type=" & valType & ")"
VendorSet.Value(argParamName) = Val

VendorSet.Save

Sub CheckError()
If Err.Number <> 0 Then
WScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.Description
Err.Clear
End If
End Sub

REFERENSI

Untuk informasi selengkapnya tentang terminologi pemutakhiran perangkat lunak, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
824684 Deskripsi tentang terminologi standar yang digunakan untuk menjelaskan pemutakhiran perangkat lunak Microsoft

Properti

ID Artikel: 2596444 - Kajian Terakhir: 17 Oktober 2011 - Revisi: 1.0
Berlaku bagi:
  • Microsoft Forefront Threat Management Gateway 2010 Enterprise
  • Microsoft Forefront Threat Management Gateway 2010 Standard
  • Microsoft Forefront Threat Management Gateway 2010 Service Pack 1
Kata kunci: 
kbfix kbbug kbexpertiseinter kbsurveynew kbmt KB2596444 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:2596444

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com