使用 Active Directory 進行安全 LDAP 身份驗證
我們正在開發一個 web 項目,我們需要能夠綁定到一個活動目錄域,然後將使用者的憑據傳遞給域,以確保使用者在我們允許他們訪問我們的一個 web 應用程序之前已成功通過身份驗證。我們的 HTTPS 工作正常,前端可以接受憑據。我們遇到的問題是我們的伺服器和活動目錄伺服器之間的連接。Active Directory 伺服器由我們 IT 部門的不同部門維護,我們無權訪問它。此活動目錄伺服器使用自簽名證書並且沒有完全限定的域名(即 people.local)。
我讀過很多關於將 TLS_REQCERT 變數設置為從不的地方;但是,我擔心中間人攻擊,並且以這種方式設置設置讓我感到不舒服。我也讀過一些文章,談到能夠從 Linux 命令行查詢活動目錄伺服器,查看自簽名證書,將自簽名證書保存到本地 Linux 伺服器,然後使用此證書進行信任這樣您就不必將 TLS_REQCERT 設置為從不。我不確定如何從 Linux 命令行查看和保存自簽名證書。我有一些我們正在執行的 CentOS 伺服器,我們需要在這些伺服器上進行操作。
您可以提供的任何幫助將不勝感激。提前致謝。
我讀過很多關於將 TLS_REQCERT 變數設置為從不的地方;但是,我擔心中間人攻擊,並且以這種方式設置設置讓我感到不舒服。
您在考慮安全性和理解設置 TLS_REQCERT 的含義方面都值得稱讚。
我還閱讀了一些關於能夠從 Linux 命令行查詢活動目錄伺服器、查看自簽名證書、將自簽名證書保存到本地 Linux 伺服器的文章……
您可以使用該
openssl
工具來執行此操作。假設您可以通過 LDAP-over-SSL 在埠 636 上訪問 Active Directory,您可以這樣做:openssl s_client -connect server.example.com:636 > output < /dev/null
當命令完成時,您會發現輸出包含 PEM 編碼證書等內容:
00000003) --- Certificate chain 0 s:/CN=dc1.example.com i:/DC=com/DC=example/DC=dc1/CN=example-DC1-CA --- Server certificate -----BEGIN CERTIFICATE----- MIIGjDCCBXSgAwIBAgIKOxasfwAAAAAADDANBgkqhkiG9w0BAQUFADBaMRMwEQYK ... -----END CERTIFICATE----- ...
您可以刪除該行之前的所有內容以及該
BEGIN CERTIFICATE
行之後的所有內容,END CERTIFICATE LINE
並且您應該擁有所需的內容。AD 伺服器也可能沒有使用自簽名證書,而是使用 AD 證書頒發機構頒發的證書。如果是這種情況,向 AD 人員詢問 CA 證書可能更容易。