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.
Я думаю, что на форуме SharePoint много информации о форумах платформы доступа на основе утверждений (Женева)
Это некоторые из поисков, которые, надеюсь, помогут вам решить проблему:
- Веб-часть регистрации претензий для SharePoint Server 2010
- Пользовательский поставщик ролей SP2010 - Roles.GetRolesForUser(userName) вызывает исключение
- Как перенаправить пользователя из Active Directory или провайдера Sqlmembership на страницу sharepoint default.aspx или домашнюю страницу после входа в систему с использованием пользовательской страницы входа.
- Блог Витторио Берточчи
- SAML 2.0 протокол блога
- SAML 2.0 Расширение Windows Identity Foundation