Le contenu sharePoint local n’est pas affiché dans les résultats de recherche SharePoint Online

Symptômes

Prenons le scénario suivant :

  • Vous configurez la recherche hybride entrante pour renvoyer des résultats dans SharePoint Online à partir d’un environnement Microsoft SharePoint 2013 local.

  • Lorsqu’un utilisateur effectue une requête à partir d’un site SharePoint Online, seuls les résultats des sites SharePoint Online sont affichés. Aucun résultat n’est renvoyé à partir de SharePoint 2013 local.

  • Vous déployez la mise à jour cumulative d’avril 2014 ou une mise à jour cumulative ultérieure sur votre batterie de serveurs SharePoint 2013 sur site.

  • Un administrateur modifie la règle de requête associée aux origines des résultats dans SharePoint Online. Ensuite, l’administrateur ouvre le Générateur de requêtes à partir du bloc de résultats. Toutefois, cela déclenche l’erreur suivante :

    1 3/4 System.Net.WebException : le serveur distant .a renvoyé une erreur : (401) Non autorisé. at System.Net.HttpWebRequest.GetResponse() at Microsoft.SharePoint.Client.SPWebRequestExecutor.Execute() at Microsoft.SharePoint.Client.ClientContext.GetFormDigestInfoPrivate() at Microsoft.SharePoint.Client.ClientContext.EnsureFormDigest() at Microsoft.SharePoint.Client.ClientContext.ExecuteQuery() at Microsoft.Office.Server.Search.RemoteSharepoint.RemoteSharepointEvaluator.RemoteSharepointProducer.RetrieveDataFromRemoteServer(Object unused) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, État de l’objet, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, État de l’objet, Boolean preserveSyncCtx) à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at Microsoft.Office.Server.Search.RemoteSharepoint.RemoteSharepointEvaluator.RemoteSharepointProducer.ProcessRecordCore(IRecord record)

Solution de contournement

Pour contourner ce problème, modifiez votre fournisseur d’identité SharePoint local afin qu’il fonctionne avec SharePoint Online. Pour ce faire, exécutez l’cmdlet suivante sur votre batterie de serveurs SharePoint 2013 sur site :

$config = Get-SPSecurityTokenServiceConfig  

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

$config.Update()   

Plus d’informations

Dans le scénario décrit dans la section « Symptômes », l’exception suivante est consignée dans le journal ULS (Unified Logging Service) :

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)'.   

Il s’agit d’un problème connu lorsque vous déployez la mise à jour cumulative d’avril 2014 ou les mises à jour cumulatives ultérieures sur votre batterie de serveurs SharePoint 2013 sur site.

Pour plus d’informations sur la configuration de la recherche hybride pour SharePoint Server 2013, voir le site web Microsoft suivant :

Feuilles de route de configuration hybride pour SharePoint Server 2013

Encore besoin d’aide ? Accédez à Microsoft Community.