使用加密系結
透過網路交換的敏感數據應加密。 為了允許這一點,ADSI 支援兩種類型的加密:Kerberos 和安全套接字層 (SSL)。 這兩種類型的加密都需要使用 ADsOpenObject 或 IADsOpenDSObject::OpenDSObject 進行系結。
在此情況下,無法使用 GetObject 和 ADsGetObject 進行系結,因為這些函式會導致 ADSI 所使用的 LDAP 要求,以及從目錄伺服器傳回的數據以純文本形式透過網路傳輸。 為了進行偵錯,關閉加密有助於關閉網路監視器,以便用來檢視用戶端與目錄伺服器之間的LDAP要求和數據。
以 Kerberos 為基礎的加密
若要使用 Kerberos 型加密,請在呼叫 ADsOpenObject 或 IADsOpenDSObject::OpenDSObject 時指定ADS_USE_SEALING旗標。 ADS_USE_SEALING旗標也可用來驗證數據完整性,也就是確保所接收的數據與傳送的數據相同。 如果指定ADS_USE_SEALING旗標,則也會自動指定ADS_USE_SIGNING旗標。 這兩個旗標都需要 Kerberos 驗證,這隻適用於下列條件:
- 用戶端計算機必須登入 Windows 網域,或登入 Windows 網域信任的網域。
- ADsOpenObject 或 IADsOpenDSObject::OpenDSObject 必須以 Null 認證呼叫;也就是說,無法指定替代認證。
SSL 型加密
若要使用 SSL 型加密,請在呼叫 ADsOpenObject 或 IADsOpenDSObject::OpenDSObject 時指定ADS_USE_SSL旗標。 如果只 指定ADS_USE_SSL 旗標,ADSI 會開啟 SSL 埠 636,然後透過該 SSL 通道執行簡單的系結。 如果同時 指定ADS_SECURE_AUTHENTICATION 和 ADS_USE_SSL 旗標,系結行為取決於呼叫的來源用戶端。 在不支援的 Windows 版本上,ADSI 會先開啟 SSL 通道,並在使用者名稱和密碼都是 Null 時,使用指定的使用者名稱和密碼或目前的使用者內容來執行簡單的系結。 在支援的 Windows 版本上,ADSI 會執行安全驗證,而不是簡單的系結。
若要在與 Active Directory 通訊時使用 SSL 型加密,Active Directory 必須已啟用公鑰基礎結構 (PKI)。 您可以在 Active Directory 的其中一部伺服器上設定企業證書頒發機構單位來啟用 PKI,包括其中一個 Active Directory 伺服器本身。 設定企業證書頒發機構單位會導致 Active Directory 伺服器取得伺服器證書,然後可用來執行 SSL 型加密。