Проблемы с претензиями Sharepoint / c2wts с Performance Point / службами Excel

Я создал настраиваемого поставщика утверждений, чтобы пользователи могли входить в SharePoint с существующего веб-сайта. При этом выдаются заявки, в том числе заявки на UPN в формате имя пользователя @ домен. Пользователь может войти в систему, пока я не включу 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 действительно отображается, что имя участника-пользователя было преобразовано в учетную запись 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 о точках производительности)

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


person Tom Haigh    schedule 26.09.2011    source источник
comment
Я, как всегда, думал, что при реализации пользовательской интеграции AD с моим порталом в интрасети это имя пользователя @ домен совпадает с DOMAIN \ username, но это неверно. Действительно, провайдер itentity windows использует форму, называемую кратким основным именем: DOMAIN \ username, но длинная форма вряд ли совместима с формой входа dfault ASP.NET, потому что [email protected] не может быть автоматически переведен в краткую форму, поэтому я вызывал олицетворение ActiveDirectory вручную каждый раз, когда пользователь подключается к моему порталу интрасети   -  person Artur Mustafin    schedule 11.10.2011
comment
Попробуйте использовать SPContext.Current.User.Identity.Name в качестве параметра   -  person Artur Mustafin    schedule 11.10.2011


Ответы (2)



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

person Tom Haigh    schedule 08.12.2011