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