Dukungan SSO untuk Menerima Adaptor
Enterprise Single Sign-On (SSO) menyediakan layanan untuk menyimpan dan mengirimkan kredensial pengguna terenkripsi di seluruh batas lokal, jaringan, dan domain. Penulis adaptor transportasi dapat memanfaatkan API SSO untuk menangani kredensial pengguna yang digunakan adaptor transportasi untuk mengakses aplikasi back-end.
Adaptor transportasi yang tidak mendukung SSO biasanya diperlukan untuk dikonfigurasi dengan satu set kredensial yang mereka gunakan untuk mengakses aplikasi back-end. Untuk banyak sistem back-end, autentikasi akun tunggal mungkin tidak memenuhi semua penegakan keamanan. Banyak aplikasi memberikan hak akses yang berbeda tergantung pada pengguna yang mengaksesnya. SSO memungkinkan adaptor untuk secara dinamis memilih kredensial yang akan digunakan untuk titik akhir berdasarkan pengguna yang mencoba mengaksesnya.
Cara Kerja Adaptor Penerimaan dengan SSO
Terima adaptor yang mendukung SSO lakukan langkah-langkah berikut setelah menerima pesan dan sebelum menerbitkannya ke BizTalk Server:
Adaptor meniru pengirim dan mendapatkan tiket SSO atas nama pengirim dengan menggunakan ISSOTicket.IssueTicket API.
Setelah berhasil mendapatkan tiket SSO, adaptor menyimpannya di properti konteks pesan "SSOTicket" di bawah namespace layanan sistem.
Fragmen kode berikut menunjukkan bagaimana tiket diperoleh dan bagaimana tiket disimpan pada konteks pesan.
public class MyAdapter : IBTTransport,
IBTTransportConfig,
IBTTransportControl,
IPersistPropertyBag,
IBaseComponent
{
...
private string m_SSOToken = null;
// Get a ticket for the sender
private void GetSSOTicket(IntPtr token)
{
bool impersonated = false;
WindowsImpersonationContext wic = null;
if (token != (IntPtr)0)
{
try
{
// Impersonate the user using his security
// token
WindowsIdentity wi =
new WindowsIdentity(token);
wic = wi.Impersonate();
impersonated = true;
// Get an SSO ticket for the impersonated
// user
ISSOTicket ssoTicket = new ISSOTicket();
m_SSOToken = ssoTicket.IssueTicket(0);
}
finally
{
if (impersonated)
// Revert the impersonation
wic.Undo();
}
}
}
...
private void WriteSSOTicketToContext(
IBaseMessage message )
{
if (m_SSOTicket != null)
{
// Write the SSO ticket to the message context
message.Context.Write(
“SSOTicket”,
http://schemas.microsoft.com/BizTalk/2003/system-properties,
m_SSOToken);
}
}
}
Resolusi Pihak
Komponen alur Resolusi Pihak bertanggung jawab untuk memetakan sertifikat pengirim atau pengidentifikasi keamanan pengirim (SID) ke pihak BizTalk Server yang dikonfigurasi yang sesuai. Adaptor yang memiliki informasi ini tersedia untuk mereka harus mengatur dua properti konteks pesan sistem, WindowsUser dan SignatureCertificate, untuk digunakan oleh komponen resolusi pihak hilir jika dikonfigurasi.
Properti WindowsUser diisi dengan pengguna domain pengirim, misalnya redmond\myBtsUser. Properti SignatureCertificate diisi dengan thumbprint sertifikat autentikasi klien.
Mengelola Kata Sandi
Jika Anda meletakkan kredensial langsung di properti titik akhir, bidang kata sandi akan dikosongkan saat Anda perlu mengekspor file pengikatan. Ini akan mengharuskan pengguna Anda untuk memasukkan kembali kata sandi sebagai administrator. Anda dapat menghindari kesulitan ini dengan menggunakan SSO untuk kredensial.
Jika titik akhir adaptor memiliki properti Kata Sandi , ketahuilah bahwa nilai aktual disimpan dalam teks yang jelas dalam database SSO Configure Store. Ini terlepas dari kenyataan bahwa itu ditampilkan di antarmuka pengguna sebagai "*". Properti ini juga ditransfer melalui jaringan dan skrip sederhana menggunakan ExplorerOM sampel BizTalk Server akan dapat membacanya.