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

現象

以下のシナリオについて考慮します。

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

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

  • 2014 年 4 月の累積的な更新プログラムまたはそれ以降の累積的な更新プログラムを SharePoint 2013 オンプレミス ファームに展開します。

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

    1 3/4 System.Net.WebException: リモート サーバーがエラーを返しました : (401) 許可されていません。System.Net.HttpWebRequest.GetResponse()、Microsoft.SharePoint.Client.SPWebRequestExecutor.Execute()、Microsoft.SharePoint.Client.ClientContext.GetFormDigestInfoPrivate()、Microsoft.SharePoint.Client.ClientContext.EnsureFormDigest()、Microsoft.SharePoint.Client.ClientContext.ExecuteQuery()、Microsoft.Office.Server.Search.RemoteSharepoint.RemoteSharepointEvaluator.RemoteSharepointProducer.RetrieveDataFromRemoteServer(Object 未使用)、System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext、ContextCallback コールバック、Object ステート、Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext、ContextCallback コールバック、Object ステート、Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext、ContextCallback コールバック、Object ステート) at Microsoft.Office.Server.Search.RemoteSharepoint.RemoteSharepointEvaluator.RemoteSharepointProducer.ProcessRecordCore(IRecord レコード)

回避策

この問題を回避するには、SharePoint オンプレミス ID プロバイダーを変更して、SharePoint Online で動作するようにします。 これを行うには、オンプレミスの SharePoint 2013 ファームで次のコマンドレットを実行します。

$config = Get-SPSecurityTokenServiceConfig  

$config.AuthenticationPipelineClaimMappingRules.AddIdentityProviderNameMappingRule("OrgId Rule", [Microsoft.SharePoint.Administration.Claims.SPIdentityProviderTypes]::Forms, "membership", "urn:federation:microsoftonline")  

$config.Update()   

詳細情報

「現象」セクションで説明されているシナリオでは、次の例外が統合ログ サービス (ULS) ログに記録されます。

w3wp.exe (0x48E4) 0x08A4 SharePoint Portal Server User Profiles ae0sx Unexpected Error trying to search   
in the UPA. The exception message is 'System.ArgumentException: Exception of type  
 'System.ArgumentException' was thrown. Parameter name:  
 value at Microsoft.SharePoint.Administration.Claims.SPIdentityProviders.GetIdentityProviderType(String value)   
at Microsoft.Office.Server.Security.UserProfileIdentityClaimMapper.SearchUsingNameIdOrThrow  
(UserProfileManager upManager, String nameId, String nameIdIssuer) at   
Microsoft.Office.Server.Security.UserProfileIdentityClaimMapper.GetSingleUserProfileFromClaimsList  
(UserProfileManager upManager, IEnumerable`1 identityClaims)'  
(0x48E4) 0x08A4 SharePoint Portal Server User Profiles ae0su High   
The set of claims could not be mapped to a single user identity. Exception Exception of type 'System.ArgumentException' was thrown.   
Parameter name: value has occured. a53bac9c-(0x48E4)   
0x08A4 SharePoint Foundation Claims Authentication ae0tc High   
The registered mappered failed to resolve to one identity claim.   
Exception: System.InvalidOperationException: Exception of type 'System.ArgumentException' was thrown.   
Parameter name: value ---> System.ArgumentException: Exception of type 'System.ArgumentException' was thrown.   
Parameter name: value at Microsoft.SharePoint.Administration.Claims.SPIdentityProviders.GetIdentityProviderType  
(String value) at Microsoft.Office.Server.Security.UserProfileIdentityClaimMapper.SearchUsingNameIdOrThrow(UserProfileManager upManager,   
String nameId, String nameIdIssuer) at   
Microsoft.Office.Server.Security.UserProfileIdentityClaimMapper.GetSingleUserProfileFromClaimsList  
(UserProfileManager upManager, IEnumerable`1 identityClaims)   
--- End of inner exception stack trace ---   
at Microsoft.Office.Server.Security.UserProfileIdentityClaimMapper.GetSingleUserProfileFromClaimsList  
(UserProfileManager upManager, IEnumerable`1 identityClaims)   
at Microsoft.Office.Server.Security.UserProfileIdentityClaimMapper.  
<>c__DisplayClass2.<GetMappedIdentityClaim>b__0() at Microsoft.SharePoint.SPSecurity.  
<>c__DisplayClass5.<RunWithElevatedPrivileges>b__3()   
at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode)   
at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(WaitCallback secureCode, Object param)   
at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(CodeToRunElevated secureCode)   
at Microsoft.Office.Server.Security.UserProfileIdentityClaimMapper.GetMappedIdentityClaim(Uri context,   
IEnumerable`1 identityClaims) at Microsoft.SharePoint.IdentityModel.SPIdentityClaimMapperOperations.GetClaimFromExternalMapper  
(Uri contextUri, List`1 claims)  
(0x48E4) 0x08A4 SharePoint Foundation Claims Authentication af3zp   
Unexpected STS Call Claims Saml: Problem getting output claims identity.   
Exception: 'System.InvalidOperationException: Exception of type 'System.ArgumentException' was thrown.   
Parameter name: value ---> System.ArgumentException:   
Exception of type 'System.ArgumentException' was thrown.   
Parameter name: value at Microsoft.SharePoint.Administration.Claims.SPIdentityProviders.GetIdentityProviderType  
(String value) at Microsoft.Office.Server.Security.UserProfileIdentityClaimMapper.SearchUsingNameIdOrThrow  
(UserProfileManager upManager, String nameId, String nameIdIssuer)   
at Microsoft.Office.Server.Security.UserProfileIdentityClaimMapper.GetSingleUserProfileFromClaimsList  
(UserProfileManager upManager, IEnumerable`1 identityClaims)   
--- End of inner exception stack trace ---   
at Microsoft.Office.Server.Security.UserProfileIdentityClaimMapper.GetSingleUserProfileFromClaimsList  
(UserProfileManager upManager, IEnumerable`1 identityClaims)   
at Microsoft.Office.Server.Security.UserProfileIdentityClaimMapper.  
<>c__DisplayClass2.<GetMappedIdentityClaim>b__0() at Microsoft.SharePoint.SPSecurity.  
<>c__DisplayClass5.<RunWithElevatedPrivileges>b__3()   
at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode)   
at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(WaitCallback secureCode, Object param)   
at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(CodeToRunElevated secureCode)   
at Microsoft.Office.Server.Security.UserProfileIdentityClaimMapper.GetMappedIdentityClaim(Uri context,   
IEnumerable`1 identityClaims) at Microsoft.SharePoint.IdentityModel.SPIdentityClaimMapperOperations.  
GetClaimFromExternalMapper(Uri contextUri, List`1 claims) at Microsoft.SharePoint.IdentityModel.  
SPIdentityClaimMapperOperations.ResolveUserIdentityClaim(Uri contextUri, ClaimCollection inputClaims)   
at Microsoft.SharePoint.IdentityModel.SPIdentityClaimMapperOperations.GetIdentityClaim(Uri contextUri,   
ClaimCollection inputClaims, SPCallingIdentityType callerType) at Microsoft.SharePoint.IdentityModel.  
SPSecurityTokenService.GetLogonIdentityClaim(SPRequestInfo requestInfo, IClaimsIdentity inputIdentity,   
IClaimsIdentity outputIdentity, SPCallingIdentityType callerType) at Microsoft.SharePoint.IdentityModel.  
SPSecurityTokenService.EnsureSharePointClaims(SPRequestInfo requestInfo, IClaimsIdentity outputIdentity,   
SPCallingIdentityType callerType) at Microsoft.SharePoint.IdentityModel.SPSecurityTokenService.AugmentOutputIdentityForRequest  
(SPRequestInfo requestInfo, IClaimsIdentity outputIdentity) at Microsoft.SharePoint.IdentityModel.SPSecurityTokenService.  
GetOutputClaimsIdentity(IClaimsPrincipal principal, RequestSecurityToken request, Scope scope)'.   

これは、2014 年 4 月の累積的な更新プログラムまたはそれ以降の累積的な更新プログラムをオンプレミスの SharePoint 2013 ファームに展開する場合の既知の問題です。

SharePoint Server 2013 のハイブリッド検索を構成する方法の詳細については、次の Microsoft web サイトを参照してください。

SharePoint Server 2013 ハイブリッド構成ロードマップ

さらにヘルプが必要ですか? Microsoft コミュニティを参照してください。