Zope 具有很強大的擴展性,允許開發人員自行開發適用的 AuthSource (使用者認證資料來源)。
exUserFolder (eXtensible User Folder, XUF) 是一個囊括了 LDAP、RADIUS、SMB 以及其它數個 AuthSource 的 Zope product,我們可以用 XUF 裡的 smbAuthSource 來讓任何一個 Zope instance 裡的任何一個 folder 擁有以 NT Domain (非 Active Directory) 進行認證的能力。
exUserFolder 的安裝
首先要取得 XUF ,目前最新的版本是 0.50。照一般的程序安裝 (將包裝的 tarball 解壓縮到 instance 的 Products 目錄內,檢查檔案權限) 後,重新啟動 zope instance 即可。
注意 :不要把 XUF 放在 instance 的根目錄 (site_root) 裡面取代原本的 user folder,否則若 XUF AuthSource 失效,很有可能會讓你的整個 zope instance 無法存取。一旦發生這種事態,就我目前所得的資料顯示,可能只好放棄 zodb 裡的所有資料。如果你希望使用者可以從網站的根目錄裡存取 XUF,請配合 virtual hosting 的使用。
要使用 XUF 的 smbAuthSource,請在 site_root 以外的目錄內,從 ZMI 裡選擇新增 ex User Folder ,在一開始的 Choose Sources 頁面裡作以下的選擇:
Authentication Source : SMB Authentication Source
Property Source : ZODB BTree Property Source
注意,如果你在這一項裡選擇了 Simplistic ZODB Property Source,則之後在修改使用者的時候會出現錯誤。照著該錯誤的說明去追縱,我們會發現問題是出現在 PropSources/zodbPropSource/zodbPropSource.py 第 121 行的一個打字錯誤:
if newVal == val:
應該改成:
if newVal == value:
就不會有問題了。
Membership Source : Null Membership Source
Group Source : Null Group Source
Default password hashing method : Crypt
這個項目不管選什麼都應該沒有關係;密碼並不會存在本端,不需要 hash。
接著,出現 Add SMB Authentication Source 頁面,要在
- Host 裡輸入 Domain Controller 的名稱 (PDC 或 BDC);
- Windows Domain 裡輸入要登入的 Domain 名稱。
- WINS Server IP Address 可以不填;不填的話就會用廣播的方式來取得主機的 IP 位址。
在接下來的 Add ZODB Property Source 、 Add Basic Membership Source 和 Add Basic Group Source 裡都沒有需要填寫的資料,按 OK 繼續。
最後出現的是 Choose Authentication Type 頁面,我們可以在其中自行選擇認證的型態以及指定與 credential caching policy 相關的資料。一切都設定完畢之後,按下 Add 就完成了整個 smbAuthSource 新增的動作。
解決權限問題
上一層 user folder 的權限並不會跟著傳下來到安裝了 XUF smbAuthSource 的目錄。這會造成一個問題:系統內原本的 Manager 在該目錄內沒有權限,而我們又還沒有在 XUF 裡指定新的 Manager ,於是該目錄變成無法以 ZMI 管理,因為沒有帳號具備 Manager 權限!
解決這個問題的方法很簡單,在建立 XUF 之前,先把該目錄的所有權限設給 Authenticated 。等到建立完畢後,把 Manager 指定給需要的使用者,再把 Authenticated 的權限取消掉。
如果你已經建立了一個無法管理的 smbAuthSource XUF,那這個 XUF 就殺不掉了 (因為進不去看得到該 XUF 的 ZMI)。不過可以到它的再上一層 ZMI 裡去,把包含了該 XUF 的整個目錄給刪除掉。這招不能用到安裝在 site_root 的 smbAuthSource XUF 身上 (沒有再上一層目錄了),所以千萬不要把 XUF 裝在 site_root!也不要把 XUF 安裝在已有資料的 zodb 目錄裡,最好是在空目錄裡安裝完 XUF 並且測試好之後,再從其它的地方把資料 copy/paste 或 import 過來。
我並沒有試過 XUF 其它的 AuthSource 會否出現這個現象,但像 Plone 的 Group-aware user folder 並不會有這個問題。所以,它有可能是 smbAuthSource 的特例,使用 smbAuthSource 時請稍作留意。
- Previous: Noticeable New Anime Programs @2005/01/01
- Next: duh! @2005/01/03
Please send trackback to: http://blog.seety.org/everydaywork/2005/1/3/185/trackback/.