Локальное содержимое SharePoint не отображается в результатах поиска SharePoint Online

Симптомы

Рассмотрим следующий сценарий,

  • Для возврата результатов в SharePoint Online из локальной среды Microsoft SharePoint 2013 настраивается входящий гибридный поиск.

  • Когда пользователь выполняет запрос с сайта SharePoint Online, отображаются только результаты с сайтов SharePoint Online. Результаты из локальной sharePoint 2013 не возвращаются.

  • Развертывание накопительного обновления за апрель 2014 г. или более позднего накопительного обновления в локальной ферме SharePoint 2013.

  • Администратор редактирует правило запроса, связанное с источниками результатов в SharePoint Online. Затем администратор открывает конструктор запросов из блока результатов. Однако это вызывает следующую ошибку:

    1 3/4 System.Net.WebException: удаленный сервер .returned ошибка: (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(Объект неиспользуем) в System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Состояние объекта, Boolean preserveSyncCtx) System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Состояние объекта, Состояние объекта, Boolean сохраняетSyncCtx) в System.Threading.ExecutionContext.Run(ExecutionContext, ContextCallback callback, Состояние объекта) в Microsoft.Office.Server.RemoteSharepoint.RemoteSharepointEvaluator.RemoteSharepointProducer.ProcessRecordCore (запись IRecord)

Обходной путь

Чтобы решить эту проблему, измените локального поставщика удостоверений SharePoint, чтобы он работал с SharePoint Online. Для этого запустите следующий cmdlet на локальной ферме 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 г. или более поздних накопительных обновлений в локальной ферме SharePoint 2013.

Дополнительные сведения о настройке гибридного поиска для SharePoint Server 2013 перейдите на следующий веб-сайт Майкрософт:

Схемы гибридных конфигураций SharePoint Server 2013

Требуется дополнительная помощь? Зайдите на сайт сообщества Майкрософт.