Adapter Pengiriman HTTP
Adaptor pengiriman HTTP mendapatkan pesan dari BizTalk Server dan mengirimkannya ke URL tujuan pada permintaan HTTP POST. Adaptor pengiriman HTTP mendapatkan konten pesan dari bagian isi objek Pesan BizTalk. Adaptor pengiriman HTTP mengabaikan semua bagian lain dari objek Pesan BizTalk.
Setelah adaptor mengirim pesan ke URL tujuan dan BizTalk Messaging Engine menerima kode status keberhasilan HTTP, adaptor pengiriman HTTP menghapus pesan dari database MessageBox.
Pengalihan pesan HTTP didukung dan dapat dikonfigurasi pada port kirim.
BizTalk Server menghosting adaptor pengiriman HTTP sebagai aplikasi BizTalk asli. Ini mendukung pengiriman pesan satu arah serta transmisi solicit-response. Lokasi pengiriman untuk adaptor pengiriman HTTP adalah URL berbeda yang Anda konfigurasi melalui port kirim. URL unik ini dapat menyertakan string kueri yang ditambahkan ke URL dasar.
Adaptor pengiriman HTTP tidak mendukung operasi batching.
Jika opsi Aktifkan konfigurasi pengodean terpotong diaktifkan, maka adaptor pengiriman HTTP mengirim pesan permintaan menggunakan pengodean terpotong jika ukuran permintaan melebihi 8 KB. Jika server proksi HTTP digunakan, adaptor pengiriman HTTP tidak menggunakan pengodean terpotong dan selalu menahapkan data sebelum mengirim. Opsi Aktifkan konfigurasi pengodean terpotong diaktifkan secara default.
Saat adaptor pengiriman menerima pesan respons, adaptor dapat menerima pesan respons dengan bagian isi yang dikodekan yang dipotong.
Adaptor pengiriman HTTP mengautentikasi dengan server tujuan dengan menggunakan salah satu jenis autentikasi berikut:
Anonim. Adaptor HTTP tidak mengirim kredensial apa pun saat menyambungkan ke server tujuan. Jika server tujuan mengizinkan autentikasi anonim, kredensial akun anonim yang dikonfigurasi pada server tujuan digunakan.
Dasar. Adaptor HTTP mengirimkan nama pengguna dan kata sandi melalui koneksi HTTP dalam teks biasa.
Mencerna. Adaptor HTTP mengirim kata sandi dalam format terenkripsi melalui koneksi HTTP.
Kerberos. Nama pengguna maupun kata sandi tidak dikirim melalui koneksi HTTP. Adaptor HTTP menggunakan kredensial proses di mana adaptor pengiriman HTTP berjalan untuk jenis autentikasi ini.
Selain itu, adaptor pengiriman HTTP dapat menyediakan sertifikat Secure Sockets Layer (SSL) klien ke server Web jika server memerlukan atau menerimanya.
Adaptor pengiriman HTTP dapat membuat koneksi aman dengan server yang menerima atau memerlukan sertifikat klien. Jika sertifikat klien ditentukan, adaptor pengiriman HTTP menggunakan sertifikat saat menyambungkan dengan server yang memerlukan atau menerima sertifikat klien. Jika sertifikat klien tidak ditentukan dan server tujuan memerlukan sertifikat klien, adaptor pengiriman HTTP gagal mengirim pesan dan mengikuti logika coba lagi standar.
Adaptor pengiriman HTTP menggunakan sertifikat klien dari penyimpanan pribadi akun tempat proses BizTalk Server berjalan. Sertifikat ditentukan oleh thumbprint-nya. Jika adaptor pengiriman HTTP gagal memuat sertifikat karena alasan apa pun, pesan yang dikirim ditangguhkan.
Anda dapat mengonfigurasi Enterprise Single Sign-On (SSO) untuk digunakan dengan lokasi penerima HTTP atau mengirim port dengan menggunakan konsol Administrasi BizTalk. Topik ini menjelaskan cara kerja SSO dengan adaptor HTTP.
Dukungan Sign-On Tunggal untuk Lokasi Penerimaan HTTP
Ketika permintaan HTTP diterima oleh Microsoft Internet Information Services (IIS) dari klien Web, IIS mengautentikasi pengguna. Ekstensi Internet Server Application Programming Interface (ISAPI) meniru pengguna Microsoft Windows lalu memanggil penyimpanan kredensial SSO untuk mendapatkan tiket terenkripsi. Tiket ini disimpan sebagai properti SSOTicket dalam konteks pesan.
Dalam skenario pass-through, BizTalk Messaging Engine mengarahkan pesan ke database MessageBox. Ketika adaptor menerima pesan dari database MessageBox, adaptor HTTP memanggil Metode ISSOTicket.RedeemTicket dengan tiket terenkripsi bersama dengan nama aplikasi untuk mengambil kredensial back-end dari penyimpanan SSO. Adaptor HTTP kemudian menggunakan kredensial eksternal untuk terhubung ke sistem back-end dan memproses permintaan. Untuk informasi selengkapnya tentang aplikasi afiliasi, lihat Aplikasi Afiliasi SSO.
Dalam skenario di mana orkestrasi memanggil adaptor, BizTalk Messaging Engine mengirim pesan ini ke database MessageBox. Orkestrasi harus memastikan bahwa properti konteks SSOTicket dan properti konteks Microsoft.BizTalk.XLANGs.BTXEngine.OriginatorSID dari pesan yang berisi tiket dipertahankan. Ketika adaptor menerima pesan ini dari database MessageBox, adaptor memanggil RedeemTicket dengan tiket terenkripsi untuk mengambil kredensial back-end dari penyimpanan SSO. Pengguna yang merancang jadwal harus secara khusus menyalin properti ini ke pesan.
Dukungan Sign-On Tunggal untuk Adaptor Pengiriman HTTP
Jika SSO diaktifkan, ketika port pengiriman HTTP menerima pesan dengan properti Secure , SSO memanggil server SSO untuk memvalidasi dan menukarkan tiket untuk aplikasi afiliasi. Aplikasi administrasi, administrator afiliasi, atau administrator SSO untuk aplikasi afiliasi dapat memanggil SSO untuk menukarkan tiket. SSO kemudian mendekripsi tiket dan mendapatkan kredensial back-end. Skenario pass-through dan orkestrasi sama dengan port pengiriman HTTP.
Secara default, SSO dinonaktifkan untuk port pengiriman HTTP. Untuk informasi selengkapnya tentang mengaktifkan SSO untuk port pengiriman HTTP, lihat Mengonfigurasi Port Pengiriman HTTP.
Catatan
Anda hanya dapat menggunakan Sign-On Tunggal dengan autentikasi dasar dan hash.
Untuk menerapkan dukungan Sistem Masuk Tunggal dengan benar untuk penerima HTTP dan mengirim adaptor, kondisi berikut harus dipenuhi:
Akun pengguna yang sama harus ditentukan di tempat-tempat berikut:
Identitas kumpulan aplikasi (IIS 7.0) atau menghosting identitas aplikasi COM+ untuk direktori virtual IIS yang dipantau oleh adaptor penerima HTTP. Untuk informasi selengkapnya tentang mengonfigurasi IIS untuk lokasi penerima HTTP, lihat Cara Mengonfigurasi IIS untuk Lokasi PenerimaAN HTTP.
Kredensial masuk yang digunakan untuk instans host terisolasi tempat adaptor HTTP berjalan. Untuk informasi tentang cara mengonfigurasi kredensial masuk untuk instans host, lihat Cara Mengubah Properti Instans Host.
Host terisolasi yang digunakan adaptor HTTP harus dikonfigurasi sebagai Autentikasi Tepercaya. Untuk informasi tentang cara mengonfigurasi host sebagai Autentikasi Tepercaya, lihat Cara Mengubah Properti Host.
Ketika pesan berhasil dikirimkan, BizTalk Messaging Engine menerbitkan pesan pengakuan terkait (ACK) ke MessageBox jika pemberitahuan pengiriman diaktifkan. Demikian juga, ketika pesan ditangguhkan oleh BizTalk Messaging Engine atau orkestrasi ditangguhkan oleh mesin orkestrasi, BizTalk Server menerbitkan pesan pengakuan negatif (NACK) terkait ke MessageBox. Pesan NACK berisi properti konteks dan bagian isi pesan yang terdiri dari kesalahan SOAP. Jika pesan NACK dihasilkan karena transmisi yang gagal dari adaptor HTTP atau SOAP, kesalahan SOAP berisi elemen Header dan elemen Isi respons dari server Web tujuan. Berikut ini adalah contoh kesalahan SOAP dalam NACK yang dihasilkan untuk transmisi HTTP yang gagal:
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP:Body>
<SOAP:Fault>
<faultcode>Microsoft BizTalk Server Negative Acknowledgment</faultcode>
<faultstring>An error occurred while processing the message, refer to the details section for more information</faultstring>
<faultactor>http://localhost/receivestandard.asp</faultactor>
<detail>
<ns0:NACK Type="NACK" xmlns:ns0="http://schema.microsoft.com/BizTalk/2003/NACKMessage.xsd">
<NAckID>{4E646707-03AA-4493-95C7-A64B09E2987D}</NAckID>
<ErrorCode>0x80131600</ErrorCode>
<ErrorCategory>0</ErrorCategory>
<ErrorDescription>The remote server returned an error: (404) Not Found.</ErrorDescription>
<ErrorDetail>
<HttpErrorDetail xmlns="http://schema.microsoft.com/BizTalk/2006/HttpErrorDetails.xsd">
<Headers>Server: Microsoft-IIS/5.1 Date: Wed, 21 Apr 2005 00:27:47 GMT X-Powered-By: ASP.NET Connection: close Content-Type: text/html Content-Length: 67 </Headers>
<Body>We could not locate the page you requested. Please check the URL.</Body>
</HttpErrorDetail>
</ErrorDetail>
</ns0:NACK>
</detail>
</SOAP:Fault>
</SOAP:Body>
</SOAP:Envelope>
Catatan
Elemen Header dan elemen Body dibatasi hingga 48 KB. Elemen Header dibulatkan ke pasangan nilai header lengkap terdekat tanpa melebihi batas. Elemen Body dipotok menjadi 48 KB.
Catatan
Pesan NACK dan ACK dibuang jika tidak ada langganan yang cocok untuk mereka. Pesan NACK dan ACK tidak ditangguhkan oleh BizTalk Messaging Engine.
Untuk berlangganan pesan NACK, Anda bisa melakukan salah satu hal berikut ini:
Buat port kirim dengan filter untuk properti konteks pesan yang sesuai. Lihat Properti Konteks Pesan dalam panduan UI dan referensi namespace LAYANAN API pengembang untuk daftar properti konteks pesan sistem termasuk yang terkait dengan pengakuan pesan.
Kirim dari port orkestrasi yang ditandai dengan Pemberitahuan Pengiriman = Ditransmisikan. Jika port orkestrasi ditandai dengan Pemberitahuan Pengiriman = Ditransmisikan, orkestrasi akan menunggu hingga menerima ACK atau NACK untuk pesan yang dikirimkan. Jika NACK dihasilkan maka nack akan dirutekan ke orkestrasi dan orkestrasi akan melempar DeliveryFailureException. DeliveryFailureException dideserialisasi dari kesalahan SOAP yang terkandung dalam isi pesan NACK. Untuk mengambil string pesan pengecualian dari kesalahan SOAP yang dikembalikan ke orkestrasi, transmisikan DeliveryFailureException ke SoapException lalu akses InnerXml dari bagian Detail SOAP. Contoh kode berikut menunjukkan cara melakukan ini:
// Cast the DeliveryFailureException to a SoapException… System.Web.Services.Protocols.SoapException se = (System.Web.Services.Protocols.SoapException)e.InnerException; System.Diagnostics.Trace.WriteLine(se.Detail.InnerXml); //e is an Microsoft.XLANGs.BaseTypes.DeliveryFailureException //object type created in an Exception handler
Sampel kode di atas akan mengembalikan fragmen XML yang mirip dengan yang berikut ini:
<ns0:NACK Type="NACK" xmlns:ns0="http://schema.microsoft.com/BizTalk/2003/NACKMessage.xsd"> <NAckID>{4E646707-03AA-4493-95C7-A64B09E2987D}</NAckID> <ErrorCode>0x80131600</ErrorCode> <ErrorCategory>0</ErrorCategory> <ErrorDescription>The remote server returned an error: (404) Not Found.</ErrorDescription> <ErrorDetail> <HttpErrorDetail xmlns="http://schema.microsoft.com/BizTalk/2006/HttpErrorDetails.xsd"> <Headers>Server: Microsoft-IIS/5.1 Date: Wed, 21 Apr 2005 00:27:47 GMT X-Powered-By: ASP.NET Connection: close Content-Type: text/html Content-Length: 67 </Headers> <Body>We could not locate the page you requested. Please check the URL.</Body> </HttpErrorDetail> </ErrorDetail> </ns0:NACK>
HTTP Adapter
Objek SSO COM dalam panduan UI dan referensi namespace LAYANAN API pengembang