共用方式為


自訂人員選擇的宣告提供者 (SharePoint Foundation 2010)

 

適用版本: SharePoint Foundation 2010

上次修改主題的時間: 2016-11-30

「宣告」包含使用者身分識別的相關資訊,例如名稱、電子郵件地址或群組成員資格。Microsoft SharePoint Foundation 2010 中的宣告提供者發出宣告,然後 SharePoint Foundation 2010 會將這些宣告封裝成安全性權杖供使用者使用。當使用者登入 SharePoint Foundation 2010 時,便會驗證使用者的權杖,然後用以登入 SharePoint Foundation 2010。在 [人員選擇] 控制項中,宣告提供者顯示在 [選擇人員與群組] 對話方塊的使用者介面中。它們會在指派權限給項目 (例如清單、文件庫和 SharePoint Foundation 2010 中的網站) 時,提供尋找和選取使用者、群組及宣告的功能。如需 [人員選擇] 控制項的相關資訊,請參閱<人員選擇概觀 (SharePoint Foundation 2010)>。

本文說明宣告提供者的用途與優點、結構、自訂宣告提供者的特殊考量以及如何規劃,但並不包含如何建立或設定自訂宣告提供者的說明。如需如何建立自訂宣告提供者的相關資訊,請參閱宣告使用方式(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=207578&clcid=0x404)(可能為英文網頁) 與在 SharePoint 2010 中建立自訂宣告提供者(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=211324&clcid=0x404)(可能為英文網頁)。

閱讀本文之前,您應先了解<規劃驗證方法 (SharePoint Foundation 2010)>與宣告角色(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=208326&clcid=0x404)(可能為英文網頁) 文中所述的概念。如需宣告式驗證的其他資訊,請參閱 SharePoint 宣告式身分識別(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=196647&clcid=0x404)(可能為英文網頁) 和宣告式身分識別和存取控制項指南(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=187911&clcid=0x404)(可能為英文網頁)。

本文內容:

  • 用途與優點

  • 結構

  • 關於自訂宣告提供者

  • 部署和設定自訂宣告提供者

  • 在一個以上的伺服器陣列上使用自訂宣告

  • 自訂宣告提供者考量

用途與優點

使用 SharePoint Foundation 2010 中的宣告提供者主要有兩個原因:

  • 增強宣告

  • 提供名稱解析

在增強宣告方面,宣告提供者會在登入時使用額外的宣告來增強使用者權杖。如需增強宣告的詳細資訊,請參閱宣告提供者(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=207579&clcid=0x404)(可能為英文網頁)。

在宣告選擇方面,宣告提供者可以在 [人員選擇] 中列出、解析、搜尋、和判斷使用者、群組及宣告方便查看的顯示方式。宣告選擇功能可讓應用程式在 [人員選擇] 介面中顯示宣告,例如設定 SharePoint 網站或 SharePoint 服務的安全性時。如需 [人員選擇] 的詳細資訊,請參閱<人員選擇概觀 (SharePoint Foundation 2010)>。

您可以使用 SharePoint Foundation 2010 隨附的宣告提供者,或是建立自己的自訂宣告提供者,以便在安全性權杖提供額外的宣告給使用者,或是連線到額外的宣告來源。例如,您有一個 CRM 應用程式,其中包含的角色在 Active Directory 的使用者存放庫中找不到,您可以建立自訂宣告提供者,以連線到該資料庫,然後將 CRM 角色資料新增至使用者的原始宣告權杖。如需宣告提供者使用案例的詳細資訊,請參閱宣告提供者(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=207579&clcid=0x404)(可能為英文網頁)。

結構

將 Web 應用程式設定為使用宣告式驗證時,SharePoint Foundation 2010 會自動使用兩個預設的宣告提供者:

根據選取的 Web 應用程式區域驗證方法,SharePoint Foundation 2010 也會使用下表中列出的多個預設宣告提供者。

驗證方法 宣告提供者

Windows 驗證

SPActiveDirectoryClaimProvider(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=208325&clcid=0x404)(可能為英文網頁)

表單型驗證

SPFormsClaimProvider(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=210013&clcid=0x404)(可能為英文網頁)

安全性聲明標記語言 (SAML) 權杖型驗證

SPTrustedClaimProvider (https://go.microsoft.com/fwlink/?linkid=210014&clcid=0x404)

這些宣告提供者顯示在 [人員選擇] 的 [選取人員與群組] 對話方塊中。您可以使用<Get-SPClaimProvider>Windows PowerShell Cmdlet,來查看伺服器陣列的宣告提供者清單。

注意

將 Web 應用程式設定為使用 SAML 權杖型驗證時,SPTrustedClaimProvider 類別不會對 [人員選擇] 控制項提供搜尋功能。在 [人員選擇] 控制項中輸入的任何文字都會自動顯示成已解析,不論是否為有效的使用者、群組或宣告。如果要在 SharePoint Foundation 2010 解決方案使用 SAML 權杖型驗證,您應規劃建立可實作自訂搜尋和名稱解析的自訂宣告提供者。

宣告提供者會以在伺服器陣列部署之功能的形式登錄伺服器陣列。其範圍侷限在伺服器陣列層級。每個宣告提供者物件均使用 SPClaimProviderDefinition 類別,以便納入宣告提供者的相關資訊,例如顯示名稱、描述、組件及類型。SPClaimProviderDefinition 類別有兩個重要的屬性分別為 IsEnabled 與 IsUsedByDefault。這些屬性可判斷是否已在伺服器陣列中啟用登錄的宣告提供者,以及是否會將特定區域預設為使用該宣告提供者。根據預設,所有宣告提供者在部署到伺服器陣列後都會加以啟用。如需 SPClaimProviderDefinition 類別的相關資訊,請參閱 SPClaimProviderDefinition 類別(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=207595&clcid=0x404)(可能為英文網頁)。

如需有關區域與驗證的詳細資訊,請參閱<規劃驗證方法 (SharePoint Foundation 2010)>。

如需如何撰寫自訂宣告提供者的相關資訊,請參閱在 SharePoint 2010 中建立自訂宣告提供者(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=211324&clcid=0x404)(可能為英文網頁) 與宣告逐步解說:撰寫 SharePoint 2010 的宣告提供者(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=207589&clcid=0x404)(可能為英文網頁)。如需如何覆寫預設宣告提供者的相關資訊,請參閱如何在 SharePoint 2010 中覆寫預設名稱解析和宣告提供者(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=207591&clcid=0x404)(可能為英文網頁)。

關於自訂宣告提供者

根據預設,執行查詢時,在 [人員選擇] 中解析的資訊取決於宣告提供者所提供的資訊。使用現成宣告提供者時,您無法變更提供的資訊和其顯示方式。若要這樣做,您必須請開發人員建立符合您解決方案需求的自訂宣告提供者,以便在使用者將權限指派給項目 (例如網站、清單或文件庫) 時尋找和選取使用者、群組和宣告。

例如,Web 應用程式使用 SAML 驗證,且您也想要從 Active Directory 解析使用者,您就必須建立自訂宣告提供者。如需宣告提供者使用案例的其他範例,請參閱宣告提供者(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=207579&clcid=0x404)(可能為英文網頁)。

建立自訂宣告提供者時,您可以控制所要顯示的資訊和回應 [人員選擇] 控制項的查詢所要傳回的結果。根據預設,您會將 Web 應用程式設定為使用宣告驗證,然後在伺服器上登錄該宣告提供者。

注意

您無法在 [人員選擇] 的 [選取人員與群組] 對話方塊中,控制宣告提供者的顯示順序。

如需如何撰寫自訂宣告提供者的相關資訊,請參閱如何:建立宣告提供者(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=207588&clcid=0x404)(可能為英文網頁) 與宣告逐步解說:撰寫 SharePoint 2010 的宣告提供者(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=207589&clcid=0x404)(可能為英文網頁)。如需如何覆寫預設宣告提供者的相關資訊,請參閱如何在 SharePoint 2010 中覆寫預設名稱解析和宣告提供者(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=207591&clcid=0x404)(可能為英文網頁)。

部署和設定自訂宣告提供者

根據預設,當您在伺服器陣列上登錄自訂宣告提供者時,IsEnabled 與 IsUsedByDefault 屬性均設為 True。除非 IsUsedByDefault 屬性設為 False,否則所有區域都會在 [人員選擇] 的 [選取人員與群組] 對話方塊中顯示自訂宣告提供者。根據 SharePoint Foundation 2010 解決方案所需的區域數目、每個區域使用的驗證方法及每個區域的使用者,您可能想要限制可在 [人員選擇] 中顯示自訂宣告提供者的區域。

由於宣告提供者侷限在伺服器陣列層級且是在區域層級啟用,因此您必須小心規劃要顯示自訂宣告提供者的區域。一般而言,您應確定 IsUsedByDefault 屬性已設為 False,然後針對想要使用自訂宣告提供者的每個區域來設定 SPIisSettings 類別。若要設定自訂宣告提供者以用於選取的區域,您可以建立 Windows PowerShell 指令碼,使用 SPIisSettings.ClaimsProviders 屬性設定區域的宣告提供者,或是可以建立自訂應用程式,讓您啟用選取區域的自訂宣告提供者。如需 SPIisSettings.ClaimsProvider 屬性的相關資訊,請參閱 SPIisSettings.ClaimsProvider 屬性(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=207597&clcid=0x404)(可能為英文網頁)。如需如何建立自訂應用程式以設定選取區域的自訂宣告提供者的相關資訊,請參閱 TechNet 部落格張貼的文章在 SharePoint 2010 中設定只能在選取的區域中使用的自訂宣告提供者(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=207592&clcid=0x404)(可能為英文網頁)。

例如,假設案例中有兩個 Web 應用程式:第一個應用程式 PartnerWeb 有兩個區域 (一個使用 Windows 宣告式驗證的內部網路和一個使用表單型驗證的外部網路) 是用來讓員工與合作夥伴進行共用作業。第二個應用程式 PublishingWeb 只有一個使用表單型驗證的區域,且是供員工、業務合作夥伴和客戶夥伴使用的網際網路發佈網站。現在假設對於 PartnerWeb 上的外部網路區域,您想讓員工與業務合作夥伴共同作業,而不是客戶夥伴。若要這樣做,您要撰寫自訂宣告提供者,根據使用者的身分識別來判斷目前使用者是業務合作夥伴或客戶夥伴。在此範例中,來自 fabrikam.com 的使用者是業務合作夥伴,而 contoso.com 的使用者則是客戶夥伴。當 PartnerWeb Web 應用程式驗證使用者是業務合作夥伴時,便會將稱為 BusinessPartner 的角色宣告新增至宣告權杖;驗證是客戶夥伴時,便會將稱為 CustomerPartner 的角色宣告新增至宣告權杖。若要確定永不會將客戶夥伴新增至外部網路共同作業網站,您可以在 PartnerWeb Web 應用程式上新增 Web 應用程式原則,讓外部網路區域明確拒絕角色宣告為 CustomerPartner 的使用者進行存取。自訂宣告提供者也必須實作搜尋和輸入支援,讓 Web 應用程式原則可以解析 CustomerPartner 角色宣告,如此才能新增至 Web 應用程式原則。最後,您可以將該區域的 SPIisSettings 類別設定為使用自訂宣告提供者,便可在外部網路區域上啟用此功能。下圖說明每個 Web 應用程式與區域的驗證方法與宣告提供者設定。

SPIisSettings 圖

注意

在管理中心網站上,所有宣告提供者都會顯示在 [人員選擇] 的 [選取人員與群組] 對話方塊中,不論 IsUsedByDefault 屬性是否設為 True。

您可以在為自訂宣告提供者建立的功能接收器中設定 IsUsedByDefault 屬性,如需如何使用功能接收器部署自訂宣告提供者的相關資訊,請參閱範例:部署宣告提供者的功能接收器(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=207590&clcid=0x404)(可能為英文網頁)。

您也可以使用<Set-SPClaimProvider>Windows PowerShell Cmdlet 來覆寫 IsEnabled 和 IsUsedByDefault 屬性的設定。

重要

將 IsEnabled 屬性變更為 False 會停用整個伺服器陣列的宣告提供者。如果您需要疑難排解可能是由自訂宣告提供者造成的問題時,這就非常有用。不過,IsEnabled 屬性一般都應該設為 True。

在一個以上的伺服器陣列上使用自訂宣告

宣告值是宣告本身、宣告提供者名稱以及在伺服器上安裝宣告提供者的順序組合而成。因此,如果您想要跨多個伺服器陣列與環境使用某宣告,必須在想要使用該宣告的每個伺服器陣列上,依相同順序安裝宣告提供者。當您已在伺服器陣列上安裝自訂宣告提供者且想要在其他伺服器陣列上使用同一個宣告時,請使用下列步驟。

  1. 依照在第一個伺服器陣列上登錄宣告提供者的順序,在其他伺服器陣列上登錄宣告提供者。

  2. 備份第一個伺服器陣列。如需如何備份伺服器陣列的相關資訊,請參閱<備份伺服器陣列 (SharePoint Foundation 2010)>。

  3. 使用第一個伺服器陣列的備份,來還原其他伺服器陣列。如需如何還原伺服器陣列的相關資訊,請參閱<還原伺服器陣列 (SharePoint Foundation 2010)>。

自訂宣告提供者考量

當您在 SharePoint 解決方案中規劃要與 [人員選擇] 搭配使用的自訂宣告提供者時,請考量下列問題:

  • Web 應用程式有哪些區域且每個區域使用的驗證方法為何?

  • 是否需要針對使用者新增任何自訂宣告以啟用更進階的安全性案例?

  • 是否要搭配信任的身分識別提供者使用 SAML 驗證?

  • 在 [人員選擇] 查詢結果中顯示的使用者與角色值的來源為何?

  • 您想要在 [選取人員與群組] 對話方塊中解析哪些宣告資料?

SharePoint Foundation 2010 內容發佈小組非常感謝 Steve Peschka 對本文的貢獻。他的部落格在這裡(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=210274&clcid=0x404)(可能為英文網頁)。

See Also

Concepts

規劃驗證方法 (SharePoint Foundation 2010)