本文比較了二者的區別.
耙梳
===========
MOSS和WSS3.0中的內容就是被設計為使用Windows認證的. MOSS剛剛發布的時候, 還沒有辦法使用FBA(form based authentication)認證方式來耙梳. 在SP1裡, 包含了設定特別的耙梳規則的能力, 允許基於cookie的認證, 這樣網站就能夠被耙梳了.
然而, 它只能進行簡單的對內容的耙梳, 它並不會捕捉到安全資訊還有任何使用native SharePoint Protocol Handler能夠抓取出來的豐富的中繼資料.
基於這樣的原因, 不論你是否已經安裝了SP1, 我們都推薦你使用SharePoint native protocol handler來索引使用FBA保護的網站.
注意: 關於如何配置的更多資訊請看原文.
與2007 Office System的整合
===========
MOSS和WSS3.0跟Office用戶端軟體有高水平的整合. 很多整合的Feature是依賴於Windows認證的. 沒有Windows認證, 很多整合點就不能工作了, 剩下的也有一些程度上的不同. 為了協助客戶儘可能的減少困惑, SharePoint提供了一個模式, 在這個模式下, 需要Windows認證的功能表項目都會被移除. 設定這個模式的地方就是管理中心, Authentication Provider頁面的Enable Client Integration複選框.
下面是必須依靠Windows認證才能工作的一些項目:
對遠程介面的支援被關閉了包括WebDAV, SOAP, 和Microsoft Office FrontPage remote procedure calls (RPC). 有一些功能不能使用了, 比如說Web folders, Web services for accessing content in that site.
一些工具列項目不再出現了:
- New Document
- Open in Outlook
- Open In Windows Explorer
- Export to Spreadsheet
- Open with Database Program
Explorer View 選項被隱藏了.
Create an Access View 選項被隱藏了.
在圖片庫裡, 下面的功能被移除了:
- Upload Multiple
- Edit Picture
- Download
- Send To
文件庫中, 在編輯控制模組菜單裡的下列drop-down項目被移除了:Edit in Word
- Edit in Excel
- Edit in PowerPoint
- Discuss
- Connect To Outlook
在PPT庫中, 下面的功能被移除了:
- Publish Slide
- Send to PowerPoint
SharePoint資料與Outlook的同步也不再有效了.
在這種模式下, 使用者還可以使用SharePoint文件庫, 但是他們必須右鍵點擊它們並選擇儲存副本到磁碟上. 他們可以編輯然後上傳.
有些公司或許希望使用Form authentication, 但還要求跟windows認證相同水平的整合. 下面是一些這種情境下可能的workaround, 它們對於協助我們理解為什麼這些限制會存在很有協助.
當一個使用者通過form認證訪問一個網站中的頁面時, 伺服器會尋找合法的認證cookie. 如果cookie沒有找到, 或者cookie不合法, 伺服器會通過使用HTTP 302狀態代碼, 重新導向瀏覽器到登陸頁面. 在這個頁面, 使用者允許使用它的credentials資訊來通過認證. credential在驗證過了之後, 伺服器建立一個合法的authentication cookie, 並把它連同原來請求的頁面一起發回給瀏覽器. 瀏覽器會把這個cookie儲存在記憶體中, 並在接下來的向這個web伺服器的請求中都會帶上這個cookie. 在每一個request中, server都會檢查cookie的合法性來確保這是一個好的(沒到期, 沒被篡改過), 然後處理那個請求.
因為使用記憶體中的authentication cookie, 所以有下面的一些限制:
- Cookie只能在瀏覽器開啟的狀態下被儲存著, 一旦瀏覽器關閉了, cookie也就跟隨所有那個瀏覽器使用的東西一起被破壞掉了.
- Cookie屬於瀏覽器的應用程式進程(.exe), 並不能被其他的進程所共用. Office系統的應用程式是運行在自己的進程中的, 比如說msword.exe是Word的進程名. 因為如此, 一個使用者登入網站是產生的cookie不能被word共用.
這篇文章闡明了為什麼Enable Client Integration選項會被創造出來: 為了協助終端使用者體驗到一致的, 可以預測的環境; 然而, 使用者體驗相對於習慣了使用windows 認證的使用者來講還是有點不一樣的. 即使有這麼多限制, 還是有一些選項可以允許使用form認證的, 也的確提供部分或全部的使用windows認證的與Office應用程式深度整合的技術點的.
為Office 2007準備的Form Based Authentication的更新
==============
當MOSS和Office2007剛發布的時候, Office用戶端應用程式是不能直接開啟使用form認證的網站上的文檔的. 這是因為, 在剛才解釋過的, 302http響應碼會在程式試圖開啟文檔的時候發回給應用程式. Office用戶端應用程式不能響應302代碼, 結果就是展現登入的表單, 而不是請求的文檔.
Office 2007的更新允許使用者處理302 Http響應碼了. 這個更新影響的程式有: Word2007, Excel2007, PowerPoint2007, 和SahrePoint Designer2007. 因為這個更新, Office應用程式可以在一個彈出的對話方塊中展現登入頁面的表單. 為了做到這一點, 應用程式發送一個請求給SharePoint網站, 伺服器發送一個響應, 說明認證方式是表單認證, 包括了認證頁面的位置. Office應用程式然後會渲染這個HTML表單, 允許使用者在這個表單中輸入他們的credential. credential資訊通過post方法發送到伺服器, 如果伺服器返回一個原來請求文檔的重新導向響應, Office應用程式會假設身份已經確立. 它之後會使用伺服器發回給它的authorization cookie來取迴文檔, 添加相關的中繼資料, 然後開啟文檔.
通過使用這種方式, 你可以使用任意一種網站使用的表單認證頁面, 不管這個頁面是不是有SharePoint伺服器提供的.
在登入時勾選"Sign me in automatically"
==============
表單登入頁麵包含一個聲明為Sign me in automatically的複選框, 預設是沒有選中的. 如果你在登入時選中了它, 那麼一個加密了的authentication cookie就會被序列化到使用者登入網站的電腦的本地硬碟中. 使用者的credential 資訊並沒有儲存在cookie中, 取而代之, cookie中儲存的是能夠標識使用者的某些加了密的資料.
Office系統的應用程式會在收到認證請求後尋找這樣的authentication cookie. 如果有一個存在, 那這個cookie就會被放在響應authentication請求的回複中. 如果cookie還是合法的, 使用cookie的認證會成功, 文檔會在Office用戶端中開啟, 並不會要求使用者輸入什麼.
有些特性即使是有這樣的authenticationcookie也不能工作. 比如Outlook使用stssync協議來在SharePoint和outlook中同步資料. 當authentication cookie還是合法的時候, 這應該工作的, 然而認證預設情況下會在30分鐘後到期; 之後outlook會讓使用者重新進行認證.
User Profile Import
==============
MOSS 2007 Profile Import Tool可以協助我們使用Asp.net 2.0中包含的menbership provider.你提供的membeship provider提供了GetAllNames方法, 你就可以使用Profile Import Tool來註冊你的 provider了. 如果你的provider是想了GetAllProperties, 那麼Profile Import Tool就可以取回每個使用者的屬性了.
參考資料:
Forms Authentication in SharePoint Products and Technologies (Part 3): Forms Authentication vs. Windows Authentication
http://msdn.microsoft.com/en-us/library/bb977430.aspx
Office: Authentication prompts when opening Microsoft Office documents
http://support.microsoft.com/default.aspx?scid=kb;en-US;2019105#appliesto