很多網絡通信都可以用SSL來加密的,LDAP也不列外,同樣可以用SSL加密。
LDAPS使用的證書必須滿足以下幾個條件:
1.證書的增強性密鑰用法中必須有服務器身份驗證Server Authentication
2.證書的名稱或者SAN名稱中的第一個是域控的FQDN
3.服務器端有證書的私鑰
4.證書被客戶端信任
如果看不到圖,請點我。
從客戶端上測試一下基於LDAPS的Simple Binding,結果也是可以正常連接的。
注意,由於加入域的客戶端會自動添加域后綴,所以對於非域客戶端測試,請使用FQDN連接。可以看到之前的幾次嘗試連接失敗,返回錯誤81。有的是因為沒有使用FQDN,有的是因為沒有將域控使用證書的根證添加到本地服務器的受信任根證書列表中。域中的客戶端會自動將企業根證書加到本地的受信任根證書列表中,這一點可以不用擔心。
有了SSL連接之后,另一個可以進一步加強安全性的就是通道綁定Channel Binding Token。通道綁定是指服務器端會檢測客戶端提供身份驗證信息的通道,如果被檢測到客戶端是通過不同的通道提交驗證信息,服務器會認為遭受到了憑據重放的攻擊,將這次認證視為無效的。更多信息可以參考RFC 5929
需要在服務器上添加注冊表鍵值來啟用。在以下位置HKLM\System\CurrentControlSet\Services\NTDS\Parameters添加REGDWORD 值LdapEnforceChannelBinding
0代表不要求通道綁定CBT
1代表如果客戶端支持通道綁定則必須使用通道綁定完成身份驗證。Windows 7以后的系統只需更新2017年7月的更新即可支持。如果客戶端不支持通道綁定則不是強制的。
2代表所有客戶端必須使用通道綁定完成身份驗證,對於Windows客戶端來說不會有什么問題。如果你有第三方調用LDAP驗證的程序最好確認后再在域控上啟用這個功能。