共用方式為


設定兩個 SharePoint Server 伺服器陣列之間的搜尋信任

 

**適用版本:**SharePoint Server 2013, SharePoint Server 2016

**上次修改主題的時間:**2017-09-05

**摘要:**將接收搜尋查詢的 SharePoint Server 2016 或 SharePoint Server 2013 內容伺服器陣列,設定為信任傳送查詢的 SharePoint Server 2016 或 SharePoint Server 2013 伺服器陣列。

若要將內部部署的 SharePoint Server 內容伺服器陣列,設定為從其搜尋索引傳回結果至個別內部部署 SharePoint Server 陣列,您必須執行下列兩個主要程序:

  1. 在即將接收搜尋查詢的伺服器陣列中,執行以下作業將此伺服器陣列設定為信任即將傳送查詢的伺服器陣列:

    • 使用 Open Authorization 2.0 (OAuth 2.0) Web 授權通訊協定,設定伺服器對伺服器的信任關係。

    • 在即將接收查詢的伺服器陣列,讓它從它的所有裝載內容的 Web 應用程式傳回搜尋結果。

  2. 在即將傳送搜尋查詢的伺服器陣列中,建立可進行下列動作的結果來源:

    • 指定 [遠端 SharePoint] 作為通訊協定。

    • 指定 SharePoint Server 伺服器陣列中,即將接收搜尋查詢的任何根網站集合位址。

    如需詳細資訊,請參閱<在 SharePoint Server 中設定搜尋的結果來源>。

    注意

    建立結果來源後,請在網頁組件或查詢規則動作中使用,以此方式公開它提供的搜尋結果。如此一來,傳送搜尋查詢的伺服器陣列使用者,就可以看到接收查的伺服器陣列傳來的結果。如需詳細資訊,請參閱<了解 SharePoint Server 中的搜尋結果來源>。

本文說明如何執行上述清單中的第一個程序:將接收查詢的伺服器陣列設定為信任傳送查詢的伺服器陣列。

因本文簡要考量,已使用下列詞彙:

SendingFarm

內部部署的 SharePoint Server 伺服器陣列有搜尋服務,可將搜尋查詢傳送至 ReceivingFarm。

ReceivingFarm

內部部署的 SharePoint Server 伺服器陣列具備搜尋服務,可從 SendingFarm 接收搜尋查詢。本文章假設 ReceivingFarm 至少有一個裝載內容的 Web 應用程式。

為了讓 SendingFarm 能夠從 ReceivingFarm 中的搜尋索引取得搜尋結果,伺服器陣列必須具有下列特性:

注意

因為 SharePoint Server 在 Internet Information Services (IIS) 中以網站形式運作,所以管理員與使用者均依賴瀏覽器提供的協助工具功能。SharePoint Server 支援所支援瀏覽器的協助工具功能。如需詳細資訊,請參閱下列資源:

將 ReceivingFarm 設定為信任 SendingFarm

  1. 確認執行此程序的帳戶是下列群組的成員:

    • ReceivingFarm 中的伺服器陣列管理員群組。

    • 正在執行 Microsoft PowerShell Cmdlet 之所在伺服器上的系統管理員群組。

      此伺服器的系統管理員可使用 Add-SPShellAdmin Cmdlet 授權某人使用 SharePoint Server Cmdlet。當您執行 Add-SPShellAdmin Cmdlet時,您必須是 SQL Server 執行個體上 securityadmin 固定伺服器角色的成員,且必須是即將更新之所有資料庫上 db_owner 固定資料庫角色的成員。如需詳細資訊,請參閱<Add-SPShellAdmin>。如果您不具備上述資格,請連絡您的系統管理員或 SQL Server 系統管理員要求這些成員資格。

  2. 在 ReceivingFarm 中的伺服器上,啟動 SharePoint 管理命令介面。

    • 若為 Windows Server 2008 R2:

      在 SharePoint Server 環境中的 [開始] 功能表上,依序按一下 [所有程式]、[SharePoint 2016]、[SharePoint 管理命令介面]。

    • 若為 Windows Server 2012:

      • 在 SharePoint Server 環境的 [開始] 頁面上,按一下SharePoint 管理命令介面

      • 若 [開始] 頁面中沒有出現 []SharePoint 管理命令介面,請以滑鼠右鍵按一下 [電腦],按一下 [所有應用程式]SharePoint 管理命令介面,然後按一下 []。

      如需如何與 Windows Server 2012 互動的詳細資訊,請參閱<Windows Server 2012 的常見管理工作及瀏覽方式>。

  3. 在 ReceivingFarm 中的伺服器上,在 PowerShell 命令提示字元執行以下命令。此命令使用 OAuth 2.0 Web 授權通訊協定來設定伺服器對伺服器的信任,讓 ReceivingFarm 信任 SendingFarm。

    # Create a trusted security token issuer
    $i = New-SPTrustedSecurityTokenIssuer -Name "SendingFarm" -IsTrustBroker:$false -MetadataEndpoint "https://<SendingFarm_web_application>/_layouts/15/metadata/json/1"
    # Configure trust of the token-signing certificate'
    # by adding the trust used to sign oAuth tokens'
    # to the list of trusted root authorities'
    # in ReceivingFarm
    New-SPTrustedRootAuthority -Name "SendingFarm" -MetadataEndPoint https://<SendingFarm_web_application>/_layouts/15/metadata/json/1/rootcertificate
    

    其中:

    https://<SendingFarm_web_application> 是 SendingFarm 中任何已啟用 SSL 的 Web 應用程式

    重要

    內含伺服器對伺服器驗證端點,用以處理內送伺服器對伺服器要求的 Web 應用程式,或是提出外送伺服器對伺服器要求的 Web 應用程式,皆應該加以設定,以便使用安全通訊端層 (SSL)。如需如何設定 Web 應用程式使用 SSL 的相關資訊,請參閱<在 SharePoint 2013 中建立宣告式 Web 應用程式>。如需有關設定伺服器對伺服器要求的 HTTP 支援,請參閱<在 SharePoint 2013 中設定伺服器對伺服器的驗證>中的<設定適用於 HTTP 的 STS>。

  4. 在 ReceivingFarm 中的伺服器上,在 PowerShell 命令提示字元執行以下命令:

    # Use $realm to store the string'
    # that comes after the \"\@\" character'
    # in the value of $i.NameId
    $realm = $i.NameId.Split("@")
    
  5. 在 ReceivingFarm 中的伺服器中的 PowerShell 命令提示字元執行下列命令,讓 ReceivingFarm 中所有的 Web 應用程式將搜尋結果傳回到 SendingFarm:

    $s1 = Get-SPSite -Identity https://<ReceivingFarm_web_application>
    $sc1 = Get-SPServiceContext -Site $s1
    # Set up an authentication realm for'
    # a web application that hosts content in ReceivingFarm 
    Set-SPAuthenticationRealm -ServiceContext $sc1 -Realm $realm[1]
    # Get a reference to the application principal'
    # for that web application in Farm B
    $p = Get-SPAppPrincipal -Site https://<ReceivingFarm_web_application> -NameIdentifier $i.NameId
    # Grant rights to the application principal'
    # that SendingFarm will use'
    # when it sends queries to ReceivingFarm
    Set-SPAppPrincipalPermission -Site https://<ReceivingFarm_web_application> -AppPrincipal $p -Scope SiteCollection -Right FullControl
    

    其中:

    https://<ReceivingFarm_web_application> 是在 ReceivingFarm 中已啟用 SSL 的 Web 應用程式。

  6. 針對裝載您要搜尋之內容的 ReceivingFarm 中包含的每一個 Web 應用程式,重複上述步驟 (步驟 5)。

See also

SharePoint Server 的驗證概觀
在 SharePoint Server 中規劃伺服器對伺服器的驗證
在 SharePoint Server 中規劃伺服器對伺服器的驗證

在 SharePoint 2013 中設定伺服器對伺服器的驗證
設定 SharePoint 2013 中伺服器陣列之間的 OAuth 信任
在 SharePoint 2013 中從遠端 SharePoint 索引取得完整結果
簡介 JavaScript 和 .NET 中的 JavaScript 物件標記法 (JSON)