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

 

適用版本: SharePoint Foundation 2010, SharePoint Server 2010

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

「宣告」是由使用者的身分識別資訊所組成,如名稱、電子郵件位址或群組成員關係。Microsoft SharePoint Server 2010 宣告提供者會發出宣告,然後 SharePoint Server 2010 會將宣告包裝成使用者的安全性 Token。當使用者登入 SharePoint Server 2010,其 Token 就會被驗證並用來登入 SharePoint Server 2010。宣告提供者會顯示在「人員選擇」控制項之 [選擇人員與群組] 對話方塊的使用者介面中。其可在權限指派給項目 (如 SharePoint Server 2010 的清單、文件庫及網站) 時,提供用來尋找及選取使用者、群組及宣告的功能。如需「人員選擇」控制項的詳細資訊,請參閱<人員選擇器概觀 (SharePoint Server 2010)>。

本文說明宣告提供者的用途與優點、其架構、自訂宣告提供者的考量以及應如何規劃。本文內容不會說明如何建立及設定自訂宣告提供者,如需建立自訂宣告提供者的詳細資訊,請參閱宣告說明(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=207578&clcid=0x404)(可能為英文網頁) 及在 SharePoint 2010 中建立自訂宣告提供者(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=211324&clcid=0x404)(可能為英文網頁)。

在閱讀本文之前,您應先具備規劃驗證方法 (SharePoint Server 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 Server 2010 的宣告提供者主要用在下列兩種原因:

  • 增強宣告

  • 提供名稱解析

在增強角色中,宣告提供者可在登入時用其他宣告來增強使用者 Token。如需增強宣告的詳細資訊,請參閱宣告提供者(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=207579&clcid=0x404)(可能為英文網頁)。

在挑選角色中,宣告提供者會列出、解析、搜尋並判斷出在「人員選擇」中使用者、群組及宣告較「易記的」顯示方式。例如,宣告選擇可讓應用程式在設定 SharePoint 網站或 SharePoint 服務的安全性時在「人員選擇」中呈現宣告。如需「人員選擇」的詳細資訊,請參閱<人員選擇器概觀 (SharePoint Server 2010)>。

您可使用 SharePoint Server 2010 包括的宣告使用者,或建立自訂宣告提供者以在使用者的 Security Token 中提供其他宣告或連線至其他宣告來源。例如,若您具備的 CRM 應用程式中含有 Active Directory 使用者存放庫中找不到的角色,您就可建立自訂宣告提供者連線至該資料庫,並新增 CRM 角色資料至使用者的原始宣告 Token。如需宣告提供者使用模式的詳細資訊,請參閱宣告提供者(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=207579&clcid=0x404)(可能為英文網頁)。

架構

當 Web 應用程式設定為使用宣告式驗證時,SharePoint Server 2010 會自動使用下列兩種預設宣告提供者:

依據 Web 應用程式區域所選取的驗證方法而定,SharePoint Server 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-SPClaimProviderWindows PowerShell Cmdlet 來查看伺服器陣列的宣告提供者清單。

注意

若 Web 應用程式是設定為使用 SAML 權杖型驗證,SPTrustedClaimProvider 類別就不會提供「人員選擇」控制項搜尋功能。任何「人員選擇」控制項中輸入的文字不論其是否為有效的使用者、群組或宣告,在解析後都會自動顯示。若您的 SharePoint Server 2010 解決方案會使用 SAML 權杖型驗證,您應該規劃建立實作自訂搜尋及名稱解析的自訂宣告提供者。

宣告提供者是登錄為部署至伺服器陣列上的功能,且其使用範圍是設在伺服器陣列層級。每個宣告提供者物件會使用 SPClaimProviderDefinition 類別來包括宣告提供者的資訊,如顯示名稱、描述、組件及類型。IsEnabled 及 IsUsedByDefault 是 SPClaimProviderDefinition 類別的重要屬性,其可判定登錄的宣告提供者是否在伺服器陣列中啟用,或特定區域中是否預設使用宣告提供者。若宣告提供者有部署至伺服器陣列,則預設是所有都會啟用。如需 SPClaimProviderDefinition 類別的詳細資訊,請參閱 SPClaimProviderDefinition 類別(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=207595&clcid=0x404)(可能為英文網頁)。

如需區域與驗證的詳細資訊,請參閱<規劃驗證方法 (SharePoint Server 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 應用程式使用宣告驗證,然後在伺服器上登錄宣告提供者。

注意

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

如需如何撰寫自訂宣告提供者的詳細資訊,請參閱How to:建立宣告提供者(可能為英文網頁) (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 Server 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 應用程式的情況:第一個 Web 應用程式是 PartnerWeb,其有兩個區域:一個是使用 Windows 宣告式驗證的內部網路,一個是使用表單型驗證的外部網路,且該應用程式是用來讓員工及合作夥伴共同作業。第二個 Web 應用程式是 PublishingWeb,其僅有一個使用表單型驗證的區域,且為員工、業務合作夥伴及客戶合作夥伴的內部網路發佈網站。現在,假設在 PartnerWeb 的外部網路上,您想讓員工可以和業務合作夥伴共同作業,但不包含客戶合作夥伴,那麼,您就要撰寫自訂宣告提供者,以依據使用者身分識別來決定目前使用者是業務合作夥伴或客戶合作夥伴。在這個範例中,來自 fabrikam.com 的使用者是業務合作夥伴,而來自 contoso.com 的使用者是客戶合作夥伴。若使用者在 PartnerWeb Web 應用程式中已驗證為業務合作夥伴,名為 BusinessPartner 的角色宣告就會新增至宣告 Token;若是驗證為客戶合作夥伴,名為 CustomerPartner 的角色宣告就會新增至宣告 Token。若要確認一律不將客戶合作夥伴新增至外部網路共同作業網站,您可在外部網路區域的 PartnerWeb Web 應用程式上新增一個 Web 應用程式原則,來明確拒絕任何具備名為 CustomerPartner 角色宣告的使用者之存取權。自訂宣告提供者也必須實作搜尋及 Web 應用程式原則的輸入支援,以解析 CustomerPartner 角色宣告,並將其新增至 Web 應用程式原則。最後,若要在外部網路區域啟用這項功能,您必須設定該區域的 SPIisSettings 類別使用自訂宣告提供者。下列圖表說明每個 Web 應用程式及區域的驗證方法與宣告提供者設定。

SPIisSettings 圖

注意

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

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

您也可使用 Set-SPClaimProviderWindows PowerShell Cmdlet,覆寫 IsEnabled 與 IsUsedByDefault 屬性的設定。

重要

若將 IsEnabled 屬性變更為 False,則會停用整個伺服器陣列的宣告提供者。若您需要疑難排解可能由自訂宣告提供者產生的問題,這就很實用。不過一般而言,IsEnabled 屬性應該設定為 True。

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

宣告值是由宣告本身、宣告提供者名稱,及宣告提供者在伺服器上安裝之順序所組合而成。因此,若您想要跨多部伺服器陣列或環境來使用宣告,您必須在您想使用宣告的每一個伺服器陣列中,用相同順序安裝宣告提供者。若您已安裝自訂宣告提供者,且想在其他伺服器陣列上使用相同宣告,請使用下列步驟。

  1. 以與第一個伺服器陣列相同的順序在其他伺服器陣列上登錄宣告提供者。

  2. 執行第一個伺服器陣列的備份。如需如何備份伺服器陣列的詳細資訊,請參閱<備份伺服器陣列 (SharePoint Server 2010)>。

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

自訂宣告提供者的考量

若您計劃要在 SharePoint 解決方案中搭配「人員選擇」使用宣告提供者,請考慮下列問題:

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

  • 是否必須將任何自訂宣告新增至使用者,以啟用更進階安全的使用情況?

  • 您是否會對信任的身分識別提供者使用 SAML 驗證?

  • 在「人員選擇」查詢結果中,使用者及角色的值的來源為何?

  • 您想在 [選擇人員與群組] 對話方塊中解析何種宣告資料?

SharePoint Server 2010 內容發佈小組感謝 Steve Peschka 對本文的貢獻。其部落格網址為此處(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=210274&clcid=0x404)(可能為英文網頁)。

See Also

Concepts

規劃驗證方法 (SharePoint Server 2010)