Python

模仿 Active Directory 身份驗證的 Ubuntu 軟體堆棧

  • November 13, 2011

我將在客戶的數據中心擁有一個執行自定義 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 模組。是一個。

引用自:https://serverfault.com/questions/330420