Доступ веб-служб WCF к службам аналитики (SSAS) - PullRequest
0 голосов
/ 29 июля 2011

У меня есть WCF WebService, который обращается к данным куба с помощью AdomdConnection.Служба размещена внутри Sharepoint Server 2010.

У меня также есть веб-служба ASCX, которая вызывает службу WCF и вызывается из клиента (с использованием javascript).Все отлично работает, но есть проблема с аутентификацией.Обе службы (ASCX и WCF) размещены внутри Sharepoint.

Я получаю исключение от службы WCF при доступе к данным куба:

Either the user, NT AUTHORITY\IUSR, does not have access to the GMS1106 database, or the database does not exist.

Вот как я вызываю веб-службу WCF изasmx:

var binding = new BasicHttpBinding(BasicHttpSecurityMode.TransportCredentialOnly);
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows;
var endpoint = new EndpointAddress(SPContext.Current.Web.Url + GmsConfigurationReader.Current.GetParameter("OlapWebserviceEnpoint"));
var channelFactory = new ChannelFactory<IDataAccessService>(binding, endpoint);
channelFactory.Credentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;
channelFactory.Credentials.Windows.ClientCredential = System.Net.CredentialCache.DefaultNetworkCredentials;
var client = channelFactory.CreateChannel();
hyperlink = client.GetFacilityHyperlink("Quarter 2 2011", "Center/Eastern Europe", "Cracow", "Machine Time Utilization");

Sharepoint appool запускается с использованием удостоверения, имеющего разрешения для куба.

Подводя итог:

  • Вот так я получаю доступ к службе WCF: JavaScript (client) -> ASCX -> WCF -> CUBE - и нет проблем (все размещено внутри Sharepoint 2010)
  • WCF по какой-то причине использует встроенную учетную запись вместо учетных данных пользователя

Я проверил, и если я предоставляю разрешения NT AUTHORITY \ IUSR для куба, все работает нормально, но я на самом деле не хочусделай это.

1 Ответ

0 голосов
/ 19 февраля 2012

Похоже, это связано с IIS.Возможны два варианта:

Отключить анонимную проверку подлинности и включить проверку подлинности Windows (это будет работать только с Kerberose, если веб-служба не развернута на том же компьютере, что и SSAS, и пользователю не потребуется доступк кубу).

Выключите анонимную аутентификацию и включите олицетворение.Это будет работать только в том случае, если приложение имеет доступ к кубу.

...