共用方式為


接收配接器的 SSO 支援

「企業單一登入」(SSO) 提供的服務能夠跨本機、網路及網域界限,來儲存和傳輸加密的使用者認證。 傳輸配接器寫入器可以利用 SSO API 來處理使用者認證,以便讓傳輸配接器用來存取後端應用程式。

不支援 SSO 的傳輸配接器,通常都需要以單一組合的認證予以設定,這些會由配接器用來存取後端應用程式。 對於許多後端系統,單一帳戶驗證可能無法滿足所有的安全性強制。 許多應用程式都根據存取的使用者,提供不同的存取權限。 SSO 讓配接器能夠根據嘗試存取的使用者,動態地選擇要對端點使用的認證。

接收配接器如何搭配 SSO 運作

支援 SSO 的接收配接器會在接收訊息後,以及將其發佈到 BizTalk Server 前,執行下列步驟:

  1. 配接器會模擬寄件者,並使用 ISSOTicket.IssueTicket API 代表寄件者取得 SSO 票證。

  2. 在成功取得 SSO 票證後,配接器便會將其儲存在系統命名空間下的訊息內容屬性 SSOTicket 中。

    下列程式碼片段將示範如何取得票證,以及如何將其儲存在訊息內容中。

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);  
        }  
      }  
}  

合作對象解析

合作對象解析管線元件負責將傳送者憑證或傳送者安全性識別碼 (SID) 對應至所對應的已設定 BizTalk Server 合作對象。 具有此資訊的配接器應該在設定時,將下游合作物件解析元件使用的兩個系統訊息內容屬性 WindowsUserSignatureCertificate設定為取用。

WindowsUser屬性會填入寄件者的網域使用者,例如 redmond\myBtsUser。 SignatureCertificate屬性會填入用戶端驗證憑證的指紋。

管理密碼

如果您將認證直接放在端點的屬性中,當您需要匯出繫結檔案時,密碼欄位就會變成空白。 這樣您的使用者就需要重新輸入系統管理員的密碼。 您可以對認證使用 SSO 以避免這種困難狀況。

如果配接器端點具有 Password 屬性,請注意實際值會以純文字儲存在 SSO 設定存放區資料庫中。 即使在使用者介面中顯示為 "*",依然會是如此。 這個屬性也可透過網路傳輸,而且使用 BizTalk Server 範例 ExplorerOM 的簡單指令碼即可加以讀取。