模仿 Active Directory 身份驗證的 Ubuntu 軟體堆棧
我將在客戶的數據中心擁有一個執行自定義 web 應用程序的 Ubuntu 11.10 機器。客戶將無法通過 ssh 訪問該盒子,但需要身份驗證和授權才能訪問 webapp。客戶需要選擇將 webapp 指向我們在機器上本地安裝的東西,或者使用他們擁有的 Active Directory 伺服器。我計劃使用標準的“使用者屬於組;組具有權限集;webapp 需要某些權限才能響應”身份驗證設置。
我可以在本地安裝哪些軟體堆棧,以便輕鬆切換到 Active Directory 伺服器,同時保持配置盡可能簡單(對我和最終客戶都是如此)?
我想盡可能多地使用現成的軟體;我不想從事保護使用者密碼安全的業務。如果沒有一個好的開箱即用解決方案(但這似乎不太可能),我可以自己處理使用者/組/權限關係。
我將接受“這就是您需要的”頁面連結形式的答案,但不接受“這就是 Kerberos 所做的”,除非該頁面還告訴我它是否是我的案例所必需的(基本上,我知道 AD 可以說話Kerberos,但我不知道我是否需要它,或者我是否可以只使用 LDAP,或者……)。
一路LDAP。在 AD 伺服器上使用 SSL/TLS 簡單綁定到 LDAP,您應該一切順利。這很好用。如果您需要在本地複制該功能,OpenLDAP 也應該可以很好地為您服務。
目前尚不清楚您嘗試在哪個級別對客戶端進行身份驗證,並從標籤中假設您的“webapp”是用 python 編寫的。
作業系統級別
如果您需要在作業系統級別進行身份驗證,那麼我建議同樣為 Ubuntu 開放客戶端。它是免費的,可以讓您在幾分鐘內對 AD 進行身份驗證。
網路伺服器級別
如果您想在 Web 伺服器級別進行身份驗證並使用 Apache,請啟用 ldap 模組並將以下內容添加到您的虛擬主機配置中:
<Location "/"> AuthBasicProvider ldap AuthType Basic AuthzLDAPAuthoritative off AuthName "My server" AuthLDAPURL "ldap://directory.example.com:389/DC=example,DC=com?sAMAccountName?sub?(objectClass=*)" NONE AuthLDAPBindDN "CN=apache,CN=Users,DC=example,DC=com" AuthLDAPBindPassword hackme require valid-user </Location>
更多細節在這裡
當您嘗試將 URL 載入到“webapp”時,這將提示您進行身份驗證
Python
如果您想在應用程序中進行身份驗證,那麼您需要尋找可以為您執行此操作的 python 模組。這是一個。