【知識點】業務鏈接服務(BCS)認證概念整理

業務鏈接服務(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服務器在同一臺機器上)。
· 所處的域容許Kerberos代理。
· 目的服務器或Web服務使用匿名認證或SSL鏈接。

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憑據對數據源有訪問權限。

參考:
http://blogs.msdn.com/b/sridhara/archive/2010/01/27/setting-up-bcs-with-secure-store-application-impersonation.aspx

相關文章
相關標籤/搜索