保護 SQL 配接器的最佳做法
當您使用或開發使用 Microsoft BizTalk Adapter for SQL Server 的應用程式時,您應該遵循的最佳做法,以更完整地保護敏感性資料。
SQL 配接器與 SQL Server 資料庫之間的連線安全性最佳做法
SQL 配接器不支援協助保護其與SQL Server資料庫之間的通訊。 您必須提供機制,以協助確保介面卡與SQL Server資料庫之間交換資料的適當安全性層級。
基於安全性考慮,SQL 配接器不允許在連線 URI 中為SQL Server資料庫提供使用者名稱密碼認證。 如需將認證提供給 SQL 配接器的替代方法,請參閱本主題的其餘部分。
SQL 配接器也可讓您在連線到SQL Server時使用 Windows 驗證,以透過 Visual Studio 或 BizTalk Server 產生中繼資料和執行作業。 使用 Windows 驗證之前,您必須在 SQL Server Management Studio 中將 Windows 使用者新增為使用者。 如需詳細資訊,請參閱使用 Windows 驗證搭配 SQL 配接器連線至SQL Server。
如需詳細資訊,請參閱SQL Server與配接器之間的安全性。
使用 BizTalk Server 取用 SQL 配接器的安全性最佳做法
SQL 配接器不允許在連線 URI 中提供SQL Server資料庫的使用者名稱密碼認證。
當您使用取用配接器服務增益集時,請從 [設定配接器] 對話方塊的 [安全性] 索引標籤,輸入 SQL Server 資料庫的使用者名稱密碼認證。
當您在傳送埠上設定 SQL 配接器的 BizTalk WCF-Custom 配接器時,請從[WCF-自訂傳輸屬性] 對話方塊的 [認證] 索引卷標,輸入 SQL Server 資料庫的使用者名稱密碼認證。
當您在接收位置上設定 SQL 配接器的 BizTalk WCF-Custom 配接器時,請從[WCF-自訂傳輸屬性] 對話方塊的 [其他] 索引標籤,輸入 SQL Server 資料庫的使用者名稱密碼認證。
使用取用配接器服務增益集來產生中繼資料、設定傳送埠或設定接收埠時,您也可以使用 Windows 驗證。 使用 Windows 驗證之前,您必須在 SQL Server Management Studio 中將 Windows 使用者新增為使用者。 如需詳細資訊,請參閱使用 Windows 驗證搭配 SQL 配接器連線至SQL Server。
如需詳細資訊,請參閱SQL 配接器的安全性和BizTalk Server。
使用程式設計解決方案取用 SQL 配接器的安全性最佳做法
有時候,您必須為連線 URI 中的SQL Server資料庫提供使用者名稱密碼認證;不過,如果可能的話,您應該避免這麼做。
當您使用 [新增配接器服務參考 Visual Studio 外掛程式] 時,請從 [設定配接器] 對話方塊的 [安全性] 索引標籤,輸入 SQL Server 資料庫的使用者名稱密碼認證。
在 WCF 通道模型程式設計中,使用通道處理站上的Credentials屬性來設定SQL Server資料庫的使用者名稱密碼認證。
在 WCF 服務模型程式設計中,使用 WCF 用戶端上的ClientCredentials屬性來設定SQL Server資料庫的使用者名稱密碼認證。
如果取用 SQL 配接器的應用程式會將包含敏感性資料庫資訊的訊息傳送至另一個服務或用戶端,請確定這些訊息已套用足夠的安全性措施,以在您的環境中提供適當的資料保護。
使用 [新增配接器服務參考外掛程式] 或從 .NET 應用程式連線至SQL Server時,您也可以使用 Windows 驗證。 使用 Windows 驗證之前,您必須在 SQL Server Management Studio 中將 Windows 使用者新增為使用者。 如需詳細資訊,請參閱使用 Windows 驗證搭配 SQL 配接器連線至SQL Server。
如需詳細資訊,請參閱 使用 SQL 配接器保護程式設計。
在 IIS 中裝載 SQL 配接器的安全性最佳做法
將 SQL 配接器裝載Microsoft Internet Information Services (IIS) 作為 Web 服務,會將 SQL 配接器呈現的作業公開給 Web 用戶端。 這些作業可能牽涉到透過網際網路交換敏感性資料,因此您應該採取措施以協助確保此資料盡可能安全。
WCF 提供兩個 HTTP 傳輸的標準系結: BasicHttpBinding 提供沒有安全性機制的基本 HTTP 傳輸; WSHttpBinding 同時支援傳輸層級和訊息層級安全性機制。
您可以透過 HTTPS 連線使用 BasicHttpBinding ,或使用 WSHttpBinding 來協助保護您的資料。 WCF LOB 配接器 SDK 包含 WCF LOB 配接器服務開發精靈,以產生 LOB 成品的 WCF 服務。 此精靈僅支援 使用 BasicHttpBinding。
您也可以開發自訂 HTTP 系結,以利用環境所提供的其他安全性機制。 如需 WCF 提供的安全性功能詳細資訊,請參閱 保護服務和用戶端。
將 SQL 配接器裝載為 Web 服務時,Web 開發人員應該採取措施,以防止使用者直接傳遞至SQL Server資料庫輸入的字串。 例如,如果網站可讓使用者在 SELECT 語句中輸入將屬於 WHERE 子句的值,則應該掃描輸入字串,以防止將其他命令新增至 語句。
WCF 診斷追蹤和訊息記錄的安全性最佳做法
WCF 支援診斷追蹤和訊息記錄。 您可以透過組態檔或使用 Windows Management Instrumentation (WMI) 來設定診斷追蹤和訊息記錄。 根據您設定的組態選項,WCF 診斷追蹤或訊息記錄可以發出敏感性資訊給記錄檔,其中可能會遭到未經授權的使用者公開至觀察。
請遵循 WCF 檔中所提供的建議,藉由啟用這些功能來減輕潛在安全性威脅。 您至少應該觀察下列診斷追蹤和訊息記錄的最佳作法:
請勿在生產環境中啟用「詳細資訊」或「資訊」追蹤。 這可能會導致效能降低。 不過,您必須在生產環境中啟用「警告」和「錯誤」追蹤。 如果啟用追蹤,您必須採取適當的安全性措施來保護您的資料。 如需詳細資訊,請參閱 WCF 檔。
請確定記錄檔和組態檔受到存取控制清單 (ACL) 保護。
下列警告特別適用于用戶端應用程式與 SQL 配接器之間交換的訊息:
WCF 診斷追蹤可以記錄標頭 (,但無法記錄與 SQL 配接器交換之訊息的本文) 。 由於訊息動作位於訊息標頭中,這會顯示用戶端在 SQL 配接器上叫用的作業。
如果已啟用 WCF 訊息記錄且
logMessagesAtServiceLevel
為true
,則會記錄訊息標頭 (,但不會記錄在配接器用戶端與 SQL 配接器之間交換之訊息的訊息本文) 。 由於訊息動作位於訊息標頭中,這會顯示用戶端在 SQL 配接器上叫用的作業。 如果logEntireMessage
也是true
,則會記錄訊息本文。 這可能會顯示敏感性資料庫資訊。如需啟用診斷追蹤時改善安全性的詳細資訊,請參閱 追蹤的安全性考慮和實用秘訣。 如需啟用訊息記錄時改善安全性的詳細資訊,請參閱 訊息記錄的安全性考慮。