Configurar o acesso HTTP ao SQL Server Analysis Services no IIS 7.0
Você pode habilitar o acesso HTTP ao Analysis Services configurando o MSMDPUMP.dll, uma extensão de ISAPI que é executada no IIS (Serviços de Informações da Internet) e bombeia dados de e para aplicativos cliente e um servidor do Analysis Services. Esta abordagem oferece um meio alternativo de se conectar ao Analysis Services quando sua solução de OLAP requer os seguintes recursos:
O acesso de cliente está em conexões via Internet ou extranet, com restrições quanto às portas a serem habilitadas. Ou, conexões de cliente são de domínios não confiáveis na mesma rede.
O aplicativo cliente é executado em um ambiente de rede que permite conexões HTTP, mas não TCP/IP.
São necessários métodos de autenticação que não sejam a segurança integrada do Windows. O IIS oferece suporte a conexões Anônimas e à autenticação Básica. A configuração do Analysis Services para o acesso de HTTP permite que você use esses métodos de autenticação alternativos com o Analysis Services.
Os aplicativos cliente não podem usar as bibliotecas de cliente do Analysis Services (por exemplo, um aplicativo Java executado em um servidor UNIX). Se você não puder usar as bibliotecas de cliente do Analysis Services para acessar dados, poderá usar o SOAP e o XML/A em uma conexão HTTP direta a uma instância do Analysis Services.
Este tópico explica como configurar o acesso de HTTP a uma instância do Analysis Services usando o IIS 7.0. Estas instruções são válidas para qualquer versão com suporte ou edição de uma instância de OLAP do Analysis Services que execute interface com o IIS 7.0, inclusive o SQL Server 2008 R2, o SQL Server 2008 e o SQL Server 2005.
Este tópico inclui as seguintes seções:
Visão geral
Copiar o MSMDPUMP.dll em uma pasta no servidor Web.
Criar um pool de aplicativos e um diretório virtual no IIS
Configurar a autenticação de IIS e adicionar a extensão
Editar o arquivo MSMDPUMP.INI para definir o servidor de destino
Testar sua configuração
Visão geral
O MSMDPUMP é uma extensão de ISAPI que é carregada no IIS e fornece redirecionamento a uma instância do Analysis Services que está no mesmo computador ou em um computador remoto dentro do mesmo domínio. Crie e configure um diretório virtual, com seu próprio conjunto de arquivos MSMDPUMP, para cada instância do Analysis Services com a qual você deseje se conectar. O arquivo de configuração em cada conjunto de arquivos MSMDPUMP especifica o nome da instância de servidor do Analysis Services usado para cada ponto de extremidade de HTTP.
No IIS, o MSMDPUMP se conecta ao Analysis Services usando o provedor OLE DB do Analysis Services no TCP/IP. O Analysis Services e o IIS devem estar no mesmo domínio ou em domínios confiáveis para que a conexão nativa tenha êxito.
Quando o MSMDPUMP se conecta ao Analysis Services, ele utiliza uma identidade de usuário do Windows. Esta conta será a conta Anônima se você tiver configurado o diretório virtual para conexões anônimas, ou uma conta de usuário do Windows. A conta deve ter os direitos de acesso a dados apropriados no servidor e banco de dados do Analysis Services.
Observação |
---|
Lembre-se de desbloquear as portas no Firewall do Windows para permitir conexões de cliente a um servidor remoto do Analysis Services. Para obter mais informações, consulte Configurar o Firewall do Windows para acesso ao Analysis Services. |
A tabela a seguir lista considerações adicionais quando você habilita o acesso de HTTP para cenários diferentes.
Cenário |
Configuração |
---|---|
O IIS e o Analysis Services no mesmo computador |
Esta é a configuração mais simples porque permite usar a configuração padrão (onde o nome de servidor é localhost), o provedor local OLE DB do Analysis Services e a segurança avançada do Windows com NTLM. Supondo que o cliente também esteja no mesmo domínio, a autenticação de usuário será transparente para o usuário, não exigindo trabalho adicional de sua parte. |
O IIS e o Analysis Services em computadores diferentes |
Para esta topologia, instale o provedor OLE DB do Analysis Services no servidor Web. Você também precisa editar o arquivo msmdpump.ini para especificar o local da instância do Analysis Services no computador remoto. Esta topologia adiciona uma etapa de autenticação de salto duplo, em que credenciais devem fluir do cliente para o servidor Web, e para o servidor back-end do Analysis Services. Se você estiver usando credenciais do Windows e o NTLM, obterá um erro porque o NTLM não permite a delegação de credenciais de cliente a um segundo servidor. A solução mais comum é usar a autenticação Básica com o protocolo SSL, mas isso exige que usuários forneçam um nome de usuário e uma senha quando acessam o diretório virtual de MSMDPUMP. Uma abordagem mais simples poderia ser a habilitação do Kerberos e a configuração da delegação restrita do Analysis Services para permitir que usuários acessem o Analysis Services de forma transparente. Avalie quais portas devem ser desbloqueadas no Firewall do Windows. Você precisará desbloquear portas em ambos os servidores para permitir o acesso ao aplicativo Web no IIS, e ao Analysis Services em um servidor remoto. |
Conexões de cliente são de um domínio não confiável ou de uma conexão de extranet |
Conexões de cliente de um domínio não confiável apresentam restrições adicionais na autenticação. Por padrão, o Analysis Services utiliza a autenticação integrada do Windows; ela exige que os usuários estejam no mesmo domínio que o servidor. Se você tiver usuários de Extranet que se conectam ao IIS de fora do domínio, esses usuários obterão um erro de conexão se o servidor for configurado para usar as configurações padrão. Soluções alternativas incluem a conexão de usuários Extranet através de um VPN usando credenciais de domínio. Porém, talvez melhor opção seja habilitar a autenticação Básica e o SSL em seu site do IIS. |
Copiar o MSMDPUMP.dll em uma pasta no servidor Web.
Nesta seção, você copia o executável MSMDPUMP, o arquivo de configuração e os arquivos de recursos das pastas de programa Analysis Services em uma pasta de diretório virtual OLAP criada no sistema de arquivos.
A unidade deve ser formatada para o sistema de arquivos NTFS. O caminho para a pasta que você cria não deve conter espaços.
No servidor Web, crie a seguinte pasta: <unidade>:\inetpub\wwwroot\olap
Copie o conteúdo da pasta ISAPI do computador Analysis Services na pasta \inetpub\wwwroot\olap recém-criada.
A pasta ISAPI se encontra em <unidade>:\Arquivos de Programas\Microsoft SQL Server \<instância>\OLAP\bin\isapi. Ela contém os seguintes arquivos e pasta: MSMDPUMP.DLL, MSMDPUMP.INI e uma pasta Recursos que contém arquivos de recursos de idioma.
Observação Observe que o formato do nome de instância foi alterado nas últimas versões do SQL Server. Se você estiver usando o SQL Server 2008 R2, o nome da instância padrão será MSAS10_50.MSSQLSERVER. Se você estiver usando versões anteriores do SQL Server, os nomes de instância serão criadas em sequência, pela ordem de instalação, em que MSSQL.1 é o primeiro serviço instalado, MSSQL.2 é o segundo serviço e assim por diante. Talvez seja necessário abrir as pastas de instância para determinar qual delas tem os arquivos de programa do Analysis Services.
Certifique-se de que a pasta \inetpub\wwwroot\olap\isapi em seu servidor Web contenha o seguinte: MSMDPUMP.DLL, MSMDPUMP.INI e uma pasta Recursos.
Criar um pool de aplicativos e um diretório virtual no IIS
A configuração do acesso de HTTP inicia com a criação de um pool de aplicativos e do diretório virtual que fornecem um ponto de extremidade à bomba.
Criar um pool de aplicativos
Inicie o Gerenciador IIS. Clique em Iniciar, aponte para Executar e digite Inetmgr.
Clique com o botão direito do mouse em Pools de Aplicativos e clique em Adicionar Pool de Aplicativos. Crie um pool de aplicativos denominado OLAP, usando .NET Framework v2.0.50727, com o modo de pipeline Gerenciado definido como Clássico.
Por padrão, o IIS cria pools de aplicativos que usam o Serviço de Rede como a identidade de segurança. Para alterar a identidade do pool de aplicativos recém-criado, clique com o botão direito do mouse em OLAP e selecione Configurações Avançadas.
Em Identidade, clique na conta interna que o IIS especificou. Dependendo da versão do Windows utilizada, ela será Serviço de Rede (mostrado no instantâneo) ou ApplicationPoolIdentity. Clique no botão Alterar para que esta propriedade substitua a conta interna pela conta personalizada a ser usada.
Por padrão, em um sistema operacional de 64 bits, o IIS define a propriedade Enable 32-bit Applications como false. Se você copiou msmdpump.dll de uma instalação de 64 bits do Analysis Services, esta será a configuração correta para a extensão MSMDPUMP em um servidor IIS de 64 bits. Se você copiou os binários de MSMDPUMP de uma instalação de 32 bits, defina-a como true. Verifique se a propriedade foi definida corretamente.
Criar um diretório virtual
Em Gerenciador do IIS, abra Sites, clique com o botão direito do mouse em Site Padrão da Web (ou qualquer site usado para acessar a bomba) e clique em Adicionar Diretório virtual.
Em Alias, digite OLAP.
Em Caminho Físico, clique no botão Procurar e navegue até C:\inetpub\wwwroot\olap. Clique em OK.
Clique com o botão direito do mouse no diretório virtual OLAP recém-criado e clique em Converter em Aplicativo.
Na caixa de diálogo Adicionar aplicativo, ao lado do Pool de Aplicativos, clique em Selecionar e, em seguida, escolha o pool de aplicativos OLAP que você criou na seção anterior.
Clique duas vezes em OK para aceitar as alterações e converter o aplicativo.
Configurar a autenticação de IIS e adicionar a extensão
Nesta seção, você configura mais o diretório virtual OLAP recém-criado. Você especificará um método de autenticação e depois adicionará um mapa de script. Para obter mais informações sobre os métodos de autenticação, consulte IIS Authentication Methods.
No Gerenciador do IIS, abra Sites, abra Site Padrão da Web e selecione o diretório virtual OLAP.
Clique duas vezes em Autenticação na seção de IIS da página principal.
Habilite Autenticação do Windows se estiver usando a segurança integrada do Windows.
Este é o modo mais seguro e recomendado, mas ele exige que o IIS seja capaz de acessar credenciais de domínio de usuário, usando o Microsoft Active Directory® ou outro mecanismo. Se o Analysis Services e o IIS estiverem em computadores diferentes, você precisará habilitar o Kerberos e configurar o Analysis Services para a delegação restrita. A discussão de todas as configurações possíveis foge ao escopo deste tópico.
Como alternativa, habilite Autenticação Básica se seus aplicativos cliente e servidor estiverem em domínios diferentes. Este modo exige que o usuário insira um nome de usuário e uma senha. O nome de usuário e a senha são transmitidos na conexão HTTP para IIS. O IIS tentará representar o usuário com as credenciais fornecidas. Observe que é essencial para qualquer pessoa que esteja compilando um sistema onde a senha seja transmitida que encontre formas de proteger o canal de comunicação. O IIS fornece um conjunto de ferramentas que o ajudam a proteger o canal. Para obter mais informações, consulte How to Set Up SSL on IIS 7.
A autenticação Básica é útil quando você deseja coletar credenciais de usuário do cliente, fornecendo aos usuários um modo de acessar o site que usa credenciais que são diferentes da conta de logon pessoal do Windows. Quando você seleciona a autenticação Básica, o IIS lê o cabeçalho de HTTP para cada solicitação de um nome de usuário e senha. Se não localizar as credenciais apropriadas, o IIS enviará uma resposta ao cliente solicitando um nome de usuário e uma senha. O cliente solicita ao usuário credenciais e depois usa a codificação Base64 para enviar o nome de usuário e a senha ao servidor. Embora as credenciais sejam codificados, elas não são criptografadas e, portanto, não são seguras. É por isso que é altamente recomendável que sites usem uma combinação de autenticação Básica e SSL para criptografar as credenciais que o cliente envia ao servidor.
Desabilitar Autenticação Anônima a menos que você esteja oferecendo suporte a conexões através de IUSR_<computername>. Se você habilitar a Autenticação Anônima, o IIS sempre a usará primeiro, mesmo se você habilitar outros métodos de autenticação.
Se você habilitar a Autenticação Anônima, verifique se a conta IUSR_<computername> em seu servidor Web tem as permissões de acesso a dados apropriadas no banco de dados do Analysis Services.
Quando este modo é selecionado, a bomba (msmdpump.dll) é executada usando as credenciais de IUSR_<computername>. Portanto, toda conexão ao Analysis Services é aberta como o usuário IUSR_<computername>. Quando este modo é selecionado, não há distinção entre o usuário que está conectando o IIS e o que está conectando o Analysis Services. Este modo provavelmente está localizado em um ambiente extremamente controlado, onde o acesso é concedido ou negado aos usuários através de listas de controle de acesso no diretório virtual.
Clique no diretório virtual OLAP para abrir a página principal. Clique duas vezes em Mapeamentos do Manipulador.
Clique com o botão direito do mouse em qualquer ponto da página e selecione Adicionar Mapa de Script. Na caixa de diálogo Adicionar Mapa de Script, especifique *.dll como o caminho de solicitação, especifique c:\inetpub\wwwroot\olap\msmdpump.dll como o executável e digite OLAP como o nome.
Clique em Restrições de Solicitação.
Na guia Verbos, verifique se Todos os verbos está selecionado. Clique em OK e, em seguida, em OK novamente para concluir a adição de mapeamentos de script.
Quando for solicitado a permitir a extensão ISAPI, clique em Sim.
Editar o arquivo MSMDPUMP.INI para definir o servidor de destino
Abra o arquivo msmdpump.ini localizado na pasta C:\inetpub\wwwroot\OLAPand e verifique o conteúdo desse arquivo. Ele deve ter esta aparência:
<ConfigurationSettings>
<ServerName>localhost</ServerName>
<SessionTimeout>3600</SessionTimeout>
<ConnectionPoolSize>100</ConnectionPoolSize>
</ConfigurationSettings>
Se a instância do Analysis Services para a qual você está configurando o acesso de HTTP estiver localizada no computador local e instalada como uma instância padrão, não será preciso alterar essa configuração. Caso contrário, especifique o nome de servidor (por exemplo, <ServerName>ADWRKS-SRV01</ServerName>). Para um servidor que está instalado como uma instância nomeada, inclua o nome da instância (por exemplo, <NomeDoServidor>ADWRKS-SRV01\Tabular</NomeDoServidor>).
Por padrão, o Analysis Services escuta na porta TCP/IP 2383. Se você instalou o Analysis Services como a instância padrão, não precisará especificar uma porta em <ServerName> porque o Analysis Services sabe escutar automaticamente na porta 2383. Porém, você precisa permitir conexões de entrada a essa porta no Firewall do Windows. Para obter mais informações, consulte Configurar o Firewall do Windows para acesso ao Analysis Services.
Se você configurou uma instância nomeada ou padrão do Analysis Services para escutar em uma porta fixa, adicione o número de porta ao nome de servidor (por exemplo, <ServerName>AW-SRV01:55555</ServerName>) e permita conexões de entrada no Firewall do Windows para essa porta.
Testar sua configuração
A sintaxe da cadeia de conexão para MSMDPUMP é a URL para o arquivo MSMDPUMP.dll.
Se o aplicativo Web estiver escutando em uma porta fixa, acrescente o número de porta ao nome de servidor ou endereço IP (por exemplo, http://my-web-srv01:8080/olap/msmdpump.dll or http://123.456.789.012:8080/olap/msmdpump.dll.
Para testar rapidamente a conexão, você pode abrir uma conexão usando o Microsoft Excel ou o SQL Server Management Studio.
No Excel, em Dados, clique em Conexões. Em Obter Dados Externos, clique em De Outras Origens e escolha Do Analysis Services. Em Nome do servidor, insira o endereço HTTP da extensão msmdpump: http://my-web-srv01/OLAP/msmdpump.dll.
No Management Studio, na caixa de diálogo Conectar ao Servidor, selecione Analysis Services como o tipo de servidor. Em Nome do servidor, insira o endereço HTTP da extensão msmdpump: http://my-web-srv01/OLAP/msmdpump.dll.
Realize testes mais rigorosos usando um computador cliente real, executado no ambiente de rede do qual as conexões serão originadas. Lembre-se de conceder as permissões apropriadas no servidor do Analysis Services (IUSR_<computername> se você tiver habilitado conexões Anônimas ou as identidades do Windows dos usuários que estão se conectando a MSMDPUMP através de IIS).
Consulte também