業務鏈接服務(BCS)認證概念整理html
I. BDC認證模型前端
BDC服務支持兩種認證模型:信任的子系統,模擬和代理。數據庫
在信任的子系統模型中,中間層(一般是Web服務器)經過一個固定的身份來向後端服務器取得認證。選項信任的子系統模型通常基於以下的緣由:後端
· 擁有和管理後端服務器的組向一個它們管理的帳號賦予了訪問權限;
· 它提供鏈接池;
· 它減小了後端服務器的許可(licensing)成本;
· 它相對簡單。瀏覽器
在模擬和代理模型中,客戶端代理了中間層的認證,即中間層模擬客戶端以客戶端的身份取得後端服務器的認證。選擇此認證模型通常基於以下緣由:安全
· 適應後端服務器對於每用戶受權的需求;
· 知足後端服務器審計須要。服務器
II. 適用於數據庫及Web服務的BDC認證模式app
在經過BDC鏈接數據庫或Web服務系統時,可選用以下模式:ide
1. Pass-Through Authentication (Database and Web Service Systems)測試
Pass-through認證是操做系統將客戶端的認證信息直接傳遞給後端服務器。BDC對數據庫和Web服務鏈接均支持Pass-through模式。當使用Pass-through模式時,後端認證對象即登陸用戶。
當BDC經過Web頁面訪問時,它運行在Web前端服務器的IIS工做進程w3wp.exe上。這個進程的身份是IIS應用池帳號,而非模擬登陸用戶執行服務請求的線程。爲避免在DBC向後端服務器認證時丟失了登陸用戶身份,你必須在運行IIS的服務與其餘計算機之間啓用Kerberos代理。Kerberos代理能夠保證接收服務器將認證請求發送到正確的位置。
當BDC被用來爬網時,它運行在過濾器守護進程mssdmn.exe中。爲訪問後端的內容源,在過濾器守護進程中的線程模擬與後端內容源關聯的內容訪問帳號。
然而,在使用pass-through認證時,操做系統僅僅暴露用戶名和密碼。所以,若是一個公司使用兩因子(two-factor)認證(也就是說,除了用戶名和密碼,用戶還被要求一些指定的或私有的信息),pass-through認證將不能工做。
儘管有這些不足,但因爲使用的簡單性,在測試環境或目標服務器使用匿名認證的狀況下,pass-through都一個很好的選擇。
2. RevertToSelf Authentication (Database and Web Service Systems)
若是一個用戶使用Windows認證登陸,IIS將模擬那個特殊的帳號。所以,當IIS以應用池身份運行時,它模擬登陸用戶;而且,在被傳遞出去以前,請求(request)以用戶的模擬身份運行。
RevertToSelf(中止模擬)認證使得你從模擬認證復原到IIS應用池的底層配置帳號。
3. WindowsCredentials (Database and Web Service Systems)
SharePoint Server 2010經過從它的缺省安全存儲服務(SSS)得到的Windows憑據進行認證。
4. RdbCredentials (Database Systems Only)
在數據庫憑據模式中,SharePoint Server 2010經過從它的缺省安全存儲服務(SSS)得到的數據庫憑據進行認證。SharePoint服務器將數據庫憑據添加到鏈接串中,並將此憑據傳輸到數據庫服務器。
5. Credentials (Web Service Systems Only)
SharePoint Server 2010經過使用憑據而非從缺省安全存儲服務得到的Windows憑據對Web服務系統進行認證。根據Web服務服務器的配置,這些憑據被用做基本或摘要認證。由於基本和摘要認證沒有充分地保護憑據,因此你應當使用SSL,IPsec或同時使用二者在Web服務服務器和運行BDC的服務器之間實現安全通訊。
6. DigestCredentials (WCF Web Service Systems Only)
在摘要憑據認證模式下,SharePoint Server 2010使用缺省安全存儲服務將用戶憑據映射到憑據而非Windows認證所使用的憑據。映射的憑據被用做摘要認證。由於摘要認證沒有充分地保護憑據,因此你應當使用SSL,IPsec或同時使用二者在WCF Web服務服務器和運行BDC的服務器之間實現安全通訊。
總結:
認證模式 |
適用於 |
使用場景 |
---|---|---|
PassThrough |
Databases and Web services |
· 經過一個單一盒(single-box)配置用於測試環境(數據庫服務器和SharePoint服務器在同一臺機器上)。 |
RevertToSelf |
Databases and Web services |
須要將模擬帳戶復原爲IIS配置的底層帳號來認證。 |
WindowsCredentials |
Databases and Web services |
若是數據庫服務器或Web服務使用Windows認證。你須要爲這種模式設置安全存儲服務。 |
RdbCredentials |
Database systems only |
若是你的數據庫服務器使用數據庫憑據(好比,你的SQL Server服務器使用SQL Server認證而非Windows認證)。你須要爲這種模式設置安全存儲服務。 |
Credentials |
Web service systems only |
若是你的Web服務使用憑據而非Windows憑據。你須要爲這種模式設置安全存儲服務。 |
DigestCredentials |
WCF Web service systems only |
若是你的WCF Web服務使用憑據而非用於摘要認證的Windows憑據。你須要爲這種模式設置安全存儲服務。 |
III. 各認證模式所屬的認證模型
模型(Pattern/Model) |
PassThrough |
RevertToSelf |
憑據, 摘要憑據, 數據庫憑據, Windows憑據 (安全存儲我的應用) |
憑據, 摘要憑據, 數據庫憑據, Windows憑據 (安全存儲組應用) |
---|---|---|---|---|
Trusted Subsystem |
Yes |
Yes |
||
Impersonation and Delegation |
Yes |
Yes |
參考:
http://msdn.microsoft.com/en-us/library/ms566523(v=office.14).aspx
IV. 身份驗證模式 (外部內容類型 > 外部系統(數據源) > 數據庫屬性)
1. 用戶標識
官方:BDC使用請求外部數據的SharePoint用戶的標識來向數據源進行認證。
補充:使用用戶標識進行鏈接,其實就是曾在BDC認證中用過的名爲直通(PassThrough)的驗證方式。這意味着,Windows身份驗證的用戶安全令牌將被從瀏覽器傳遞給IIS,而後再傳遞到SQL。這個種方式在開發環境中每每沒問題,可是部署到生產環境可能會遇到雙躍點問題。
2. BDC標識(RevertToSelf)
官方:
補充:在新建的對話框中你不會看到「RevertToSelf」的選項,須按以下方式實現。首先,執行以下PowerShell腳本打開BCS的RevertToSelf開關:
$bdc = Get-SPServiceApplication | where {$_ -match "Business Data Connectivity"} $bdc.RevertToSelfAllowed = $true $bdc.Update()
而後,在建立數據鏈接時選擇 「使用用戶標識進行鏈接」。當鏈接創建好後,再選擇功能區中的「編輯鏈接屬性」,修改身份驗證的方式爲「BDC標識」。
3. 模擬(impersonated)Windows標識(identity)
官方:BDC將調用者的標識發送給安全存儲服務(SSS)。SSS提供映射到調用者標識的Windows憑據。BDC使用映射的Windows憑據向數據源進行認證。
補充:剩下的兩個選項都是指向安全存儲服務(SSS)。SSS將會在接下來的博文中進行全面解釋。 SSS容許咱們經過Windows用戶,或者某個自定義帳戶,好比一個聯盟的SAML用戶賬戶進行數據源鏈接。
4. 模擬(impersonated)自定義標識(identity)
官方:BDC將調用者的標識發送給安全存儲服務(SSS)。SSS提供映射到調用者標識的一套自定義憑據(好比表單認證用戶名和密碼)。BDC使用映射的自定義憑據向數據源進行認證。
補充:當安全存儲服務(SSS)被選擇做爲訪問外部數據源的認證用戶,而且自定義帳號被用於基於表單的認證(FBA)時,須要使用「經過模擬自定義標識鏈接」。
參考:
http://msdn.microsoft.com/en-us/library/ff798448.aspx
http://blogs.msdn.com/b/sridhara/archive/2010/03/10/bcs-and-external-list-learning-part2.aspx
http://www.cnblogs.com/Sunmoonfire/archive/2010/06/29/1767673.html
http://lightningtools.com/bcs/creating-an-external-content-type-with-sharepoint-designer-2013/
V. BDC訪問權限與安全存儲服務(SSS)模擬Windows憑據權限
在外部系統的身份驗證模式爲「模擬Windows標識」的狀況下,用戶從前端(SharePoint頁面)請求外部列表數據,到返回列表數據會涉及到兩種權限,一種是SharePoint用於對BDC元數據對象的訪問權限,一種是模擬Windows憑據對數據源的訪問權限。其中,模擬Windows憑據在「管理中心 > 管理服務應用程序 > Secure Storage Service」頁面進行管理,以下圖:
對BDC元數據對象的訪問權限在「管理中心 > 管理服務應用程序 > Business Connectivity Service」頁面配置,以下圖:
也就是說,要保證外部列表有權限被讀取,首先要保證當前SharePoint用戶被授予BDC元數據對象的訪問權限;其次要保證在SSS中添加的模擬Windows憑據對數據源有訪問權限。