SharePoint中的Form Based Authentication VS Windows Authentication

來源:互聯網
上載者:User

本文比較了二者的區別.

 

耙梳

===========

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

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.