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/.