Sharepoint Claims/c2wts проблемы с Performance Point/Excel Services

Я создал настраиваемый поставщик утверждений, который позволяет пользователям входить в SharePoint с существующего веб-сайта. Это приводит к претензиям, включая претензию UPN в формате username @ domain. Пользователь может войти в систему, пока я не включу mapToWindows а также useWindowsTokenService под samlSecurityTokenRequirement в веб-приложении SharePoint web.config. В этот момент я получаю стандартное сообщение об ошибке SharePoint, и в трассировке видно следующее исключение.

Exception fetching current thread user in SPUtility.CacheClaimsIdentity: Exception of type 'System.ArgumentException' was thrown.
Parameter name: identity    0.00143314303912927 0.001357
Runtime Tag(tkau) System.ArgumentException: Exception of type 'System.ArgumentException' was thrown.
Parameter name: encodedValue
  at Microsoft.SharePoint.Administration.Claims.SPClaimEncodingManager.DecodeClaimFromFormsSuffix(String encodedValue)
  at Microsoft.SharePoint.Administration.Claims.SPClaimProviderManager.GetProviderUserKey(String encodedSuffix)
  at Microsoft.SharePoint.ApplicationRuntime.SPHeaderManager.AddIsapiHeaders(HttpContext context, String encodedUrl, NameValueCollection headers)
  at Microsoft.SharePoint.ApplicationRuntime.SPRequestModule.PreRequestExecuteAppHandler(Object oSender, EventArgs ea)
  at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
  at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Я думаю, что часть олицетворения c2wts работает правильно, потому что, если я отключаю учетную запись AD, представленную переданным требованием UPN, я получаю другую ошибку "Отказано в доступе", отображаемую в SharePoint при попытке войти в систему от имени этого пользователя.

Также в журнале SharePoint действительно появляется, что UPN был преобразован в учетную запись Windows AD, потому что я получаю следующее в журнале:

Verbose  ____Current User=i:DOMAINNAME\SSO_administrator    7b4eac31-d017-429c-87f2-a3100ece6797

Обновить

Похоже, что это не поддерживаемый параметр для использования в SharePoint. Однако, если я оставлю этот параметр выключенным, похоже, что отчеты Performance Point и Excel Services, встроенные в сайт SharePoint, не будут работать должным образом. Я получаю ошибки, такие как:

  • The data connection uses Windows Authentication and user credentials could not be delegated. (Excel)
  • $Resources:ppsma.ServerCommon, ErrorCode_DataSourceCannotGetWindowsIdentityForNonWindowsClaim; (Отчет по точкам производительности SSRS)

Это можно обойти? Мне нужно, чтобы имя пользователя в качестве учетной записи использовалось для запроса данных SSAS за ними, поэтому невозможно использовать фиксированные строки подключения.

2 ответа

Решение

Оказывается, что значение конфигурации mapToWindows не поддерживается в SharePoint. Вы должны полагаться на то, что каждая часть SharePoint знает о заявках и конвертирует токен самостоятельно. Это немного болезненно, потому что PerformancePoint и Excel Services не поддерживают заявки, поэтому в конечном итоге вы застреваете с использованием аутентификации Windows, если для вашего куба SSAS требуется безопасность AD.

Другие вопросы по тегам