SharePoint 2010 中的BCS身份验证模式
BCS(Business Connectivity Services)是SharePoint 2010中用于替換原先Microsoft Office SharePoint Server 2007企業版的業務數據目錄(Business Data Catalog ,簡稱BDC)的一項新服務。 BCS相比BDC而言有許多改進,包括回寫到數據源的功能,通過類似SharePoint Workspace的Office套件提供脫機功能,增強的工具集以及外部列表等等。
?
在這篇文章中我們將探討BCS認證的相關內容,包括你可能會遇到的一些問題,以及克服或解決其中的一些問題的若干方法。
?
談到連接后端數據源進行認證,通常不外乎有兩種身份驗證的類型:用戶身份標識和模擬用戶權限提升。用戶身份標識就是指我們登錄網站實所使用的用戶標識,直接把它傳遞給數據源,并返回數據到 SharePoint。用戶會根據自身身份標識的不同看到基于該用戶身份的內容;模擬用戶權限提升時,用戶登錄時使用他們自己的憑據,但連接數據源時使用另一個用戶的憑據,通過模擬其他有權限訪問數據源的用戶來獲取數據。兩者各有優缺點。
企業希望將用戶的身份傳遞給數據源,這是一個很普遍的需求。 這種直接傳遞往往在開發環境中運行良好,可一旦遷移到生產環境就會遭遇失敗。究其原因就是眾所周知的雙躍點問題(Double Hop Issue)。 ?雙躍點問題在BDC時代就已經存在了,BCS中仍然存在該問題。這與其說是一個SharePoint的問題,倒不如說是瀏覽器/ IIS的問題。當我們通過直通(PassThrough)方式連接到數據源時, Windows身份驗證的用戶安全令牌只能進行一次跳躍。就是從瀏覽器到IIS的一跳。在一個開發環境,通常數據庫服務器安裝在與IIS同一臺物理機器上,因此一跳就可以滿足要求了。然而,在生產環境中,通常很難碰到只有一臺機器的情況,因此憑據傳遞必須從瀏覽器到IIS再到SQL。用戶因為這兩次跳躍從而無法通過驗證。
在仍然要保證用戶身份的前提下,雙躍點問題的一種解決方法是,配置我們的環境使用Kerberos認證。 如果你目前的配置架構中并沒有使用Kerberos,想要突然改變一切,讓用戶都使用Kerberos進行SharePoint身份認證是很困難的,而且也很難得到你的管理員認可。Kerberos身份驗證可以通過設置服務器間(比如IIS和SQL)的信任關系來避免雙躍點問題。驗證合格的憑證,會在IIS服務器上被續簽(renew),進而繼續用于SQL服務器。
如果傳遞用戶身份對你來說并不重要,那么你可以使用模擬用戶的方式進行數據源認證,從而克服雙躍點問題。Business Connectivity Services認證中的一個選項是“RevertToSelf”。 當選擇RevertToSelf時并不會以用戶身份,而是使用了進程帳戶(也就是BCS運行時服務所用的帳戶)身份進行數據源驗證。這也就是意味著,每個SharePoint用戶無論其身份如何,都將使用相同的帳戶連接到數據源。這聽起來像一個安全問題,但實際上這種方式工作的非常好。因為你還可以在SharePoint級別上為每個用戶或組指定權限。 比如你可以在SharePoint中指定執行功和寫回的權限。這樣就可以彌補安全方面的問題。這種方式確實可以稱為最佳實踐了。因為你可以在SQL里分配每個表,視圖,存儲過程的權限,然后將定制好的SQL權限直接分配到某個 SharePoint用戶帳戶。
Business Connectivity Services認證支持的另一種方法是使用安全存儲服務(Secure Store Services ,簡稱SSS)。安全存儲服務(SSS)是SharePoint 2007中的單點登錄(Single Sign On ,簡稱SSO)的升級換代。 SSS為我們提供了一個選擇,可以將憑據存儲在安全存儲數據庫(駐留于SharePoint服務器)中。然后,憑據以“用戶到用戶”或“域組到用戶”的方式進行映射。這樣憑據就可以在SharePoint服務器上進行續簽(renew)。 有關SSS 我們會單獨在一篇博文中進行討論。
?
我們無法做到真正推薦一種BCS認證機制可以用于所有的組織機構或企業公司。因為每個組織都有自己不同的環境配置和管理策略,因此只能提供若干種選擇。
?
在SharePoint Designer 2010里,連接到SQL Server時界面提供了下列認證的選項:
?
- 使用用戶標識進行連接
- 使用模擬Windows標識進行連接
- 使用模擬自定義標識進行連接
?
以上我們介紹了BCS身份驗證的類型。接下來我們將深入到每一種認證類型的細節,看一下具體如何在SharePoint Designer 2010中設置PassThrough 和 RevertToSelf身份驗證模式。
首先介紹一下界面上的這些選擇項:
用戶標識
使用用戶標識進行連接,其實就是曾在BDC認證中用過的名為直通(PassThrough)的驗證方式。這意味著,Windows身份驗證的用戶安全令牌將被從瀏覽器傳遞給IIS,然后再傳遞到SQL。這個種方式在開發環境中往往沒問題,但是部署到生產環境可能會遇到上面談到的雙躍點問題。
模擬Windows標識
剩下的兩個選項都是指向安全存儲服務(SSS)。SSS將會在接下來的博文中進行全面解釋。 SSS允許我們通過Windows用戶,或者某個自定義賬戶,比如一個聯盟的SAML用戶帳戶進行數據源連接。
RevertToSelf?
在上面的對話框中你不會看到“RevertToSelf”的選項。要配置RevertToSelf時,首先要選擇 “使用用戶標識進行連接”,然后點確定。當連接建立好后,再選擇功能區中的“編輯連接屬性”,修改身份驗證的方式,如下圖所示。
這里可以選擇是用用戶標識(PassThrough)還是BDC標識(RevertToSelf)進行連接。你要確保相應的標識對數據源具有讀寫權限。如果選擇了SSS,你還要進行一些額外的配置步驟。
在接下來的博文中,我們將描述如何在SharePoint 2010中配置安全存儲服務(SSS)。
?
參考資料
Business Connectivity Services Authentication
business connectivity services passthrough & reverttoself
轉載于:https://www.cnblogs.com/Sunmoonfire/archive/2010/06/29/1767673.html
總結
以上是生活随笔為你收集整理的SharePoint 2010 中的BCS身份验证模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.NET MVC 1.0 Resu
- 下一篇: 在DataGrid中合并单元格行