SharePoint Online コンテンツが SharePoint オンプレミス検索に表示されない

問題

次のような状況を想定します。

  • SharePoint 2013 オンプレミス環境で SharePoint Online からの結果を返すアウトバウンド ハイブリッド検索を構成します。

  • ユーザーが SharePoint 2013 オンプレミス サイトからクエリを実行すると、SharePoint 2013 オンプレミス環境からの結果のみが表示されます。 SharePoint Online から結果は返されません。

  • 管理者は、検索先に関連付けられているクエリルールを編集します。 次に、管理者は結果ブロックからクエリ ビルダーを開きます。 ただし、これにより次のエラーが発生します。

    1 3/4 System.Net.WebException: 要求が中止されました: 要求が取り消されました。 -->Microsoft.SharePoint.IdentityModel.OAuth2.SPOAuth2ErrorResponseException: リモート サーバーからエラー (404) が見つかりませんでした。 Microsoft.SharePoint.IdentityModel.OAuth2.SPOAuth2Client.GetResponse(Uri stsurl, OAuth2AccessTokenRequest message) at Microsoft.SharePoint.IdentityModel.OAuth2.SPOAuth2Client.RequestOAuthToken(Uri stsUrl)。OAuth2AccessTokenRequest request) at stslnfo, OAuth2EndpointIdentity endpointldentity) at Microsoft.SharePoint.IdentityModel.OAuth2.SPOAuth2SecurityTokenManager.GetRawBearerToken(String nameldentifier, SPSecurityTokenServiceConnectionInformation stslnfo.

さらに、次の例外が統合ログサービス(ULS)ログに記録されています。

An exception occurred during OAuth2 request to <url specific to your site>
The remote server returned an error: (404) Not Found.
at System.Net.HttpWebRequest.GetResponse()
at Microsoft.SharePoint.IdentityModel.OAuth2.SPOAuth2Client.GetResponse(Uri stsUrl,
OAuth2AccessTokenRequest message)

ソリューション

この問題を解決するには、検索サービス アプリケーション プロキシがパーティション モードで展開されたかどうかを確認します。 その場合は、パーティション モードを使用せずにプロキシを削除してから再作成します。

注:

  • Office 365 では、オンプレミスの Search Service アプリケーション プロキシがパーティション モードで展開されている場合、着信ハイブリッド検索クエリはサポートしていません。

  • これらの手順に従う前に、運用上のベストプラクティスに従い、バックアップを実行します。 詳細については、「 SharePoint Server の検索サービス アプリケーションのバックアップ」を参照してください。

これを行うには、SharePoint 管理シェルで次の手順を実行します。

  1. 検索サービス アプリケーションの ID を取得します。 これを行うには、以下のコマンドレットを実行します。

    $ssa=Get-SPEnterpriseSearchServiceApplication
    
  2. 検索サービス アプリケーション プロキシの ID を取得します。 これを行うには、以下のコマンドレットを実行します。

    $ssaproxy=Get-SPServiceApplicationProxy –identity <guid>
    

    注:サービスアプリケーションプロキシ GUID は、すべてのファームに一意です。 Get-SPServiceApplicationProxy の cmdlet を実行し、検索サービス アプリケーション プロキシの GUID に注意してください。

  3. $ssaproxy.properties の結果を確認します。 プロキシはパーティションとしてリストされる必要があります。 この場合は、手順 4 に進み、プロキシ プロパティを更新します。

  4. プロキシ プロパティを更新します。 これを行うには、以下のコマンドレットを実行します。

    $proxy = get-spenterprisesearchserviceapplicationproxy
    $proxy.Properties["Microsoft.Office.Server.Utilities.SPPartitionOptions"] = 0
    $proxy.Update()
    $ssa = get-spenterprisesearchserviceapplication
    $ssa.SetProperty("IgnoreTenantization",1)
    $ssa.Update()
    

    各手順が完了したら、問題が解決されたかどうかを確認します。 それ以外の場合は、手順 5 に進んでプロキシを削除して再作成します。

  5. 検索サービス アプリケーション プロキシを削除します。 これを行うには、以下のコマンドレットを実行します。

    Remove-SPServiceApplicationProxy $ssaproxy
    
  6. 新しい検索サービス アプリケーション プロキシを作成します。 これを行うには、以下のコマンドレットを実行します。

    New-SPEnterpriseSearchServiceApplicationProxy -SearchApplication $ssa -Name "Search Service Application Proxy"
    

これらの手順を実行すると、SharePoint 2013 オンプレミス検索ファームで、SharePoint Online からの結果を返すようになります。

詳細

詳細については、「SharePoint Server 2013 のマルチテナントについて」を参照してください。

さらにヘルプが必要ですか? SharePoint コミュニティにアクセスしてください。