Planejando a implantação de Extranet ou Internet

Embora o SQL Server Reporting Services não seja criado expressamente para cenários de implantação de relatórios de extranet ou Internet, é possível colocar o Reporting Services em um servidor Web da Internet para distribuir informações gerais ao público em geral ou dados corporativos particulares a usuários autorizados e autenticados.

ObservaçãoObservação

A implantação do Reporting Services em um servidor Web da Internet requer uma avaliação cuidadosa. Software de rede e de segurança, topologia de rede e configuração de domínio podem apresentar variáveis que dificultam prescrever um conjunto exato de etapas para implantação de servidor de relatório. Ao avaliar um servidor de relatório para acesso à Internet, verifique se os cenários de teste incluem todos os recursos que você pretende usar e que sempre testa usando conexões seguras.

Diagrama da arquitetura de extranet ou Internet

A ilustração a seguir fornece um exemplo de uma configuração de implantação de prática recomendada para a implantação de extranet ou Internet.

Implantação de servidor de relatório de Internet ou de extranet

Os pontos-chave a serem observados sobre o diagrama incluem o seguinte:

  • Três firewalls fornecem defesa detalhada na implantação inteira. As recomendações para configuração do firewalls são fornecidas neste tópico.

  • O ponto de entrada é um aplicativo de Internet personalizado que contém o controle ReportViewer. O controle hospeda um relatório executado em um servidor de relatório protegido pelo segundo firewall.

  • Os relatórios usam dados de fontes de dados somente leitura criados especificamente para fins de geração de relatório. As fontes de dados contêm dados que são copiados de outras fontes, mas sem os valores de dados confidenciais que nunca são usados em um relatório.

  • Os servidores de dados corporativos contêm dados confidenciais que você protege através de permissões rígidas e configurações de firewall restritivas. Você também deve considerar a opção de colocar o banco de dados de servidor de relatório nessa zona de segurança para que todos os servidores de banco de dados que precisam de acesso somente leitura possam usar a proteção fornecida pelo terceiro firewall.

Instruções gerais

A lista a seguir fornece diretrizes gerais para implantar o Reporting Services na topologia descrita neste tópico. Esta lista é oferecida como um ponto de partida para planejar seu próprio plano de implantação. A configuração específica da sua topologia de rede provavelmente exigirá que você execute etapas adicionais que não são descritas nesta lista.

É importante que você implante a configuração em um ambiente de teste para confirmar se entende todos os requisitos, configurações, etapas e a melhor ordem para essas etapas:

  1. Instale os firewalls e identifique os servidores, as contas e as permissões.

  2. Crie ou obtenha certificados de servidor para conexões SSL. Instale os certificados em todos os computadores que hospedam componentes de servidor. Se você instalou os certificados com configurações curinga, poderá usar o mesmo certificado para várias URLs.

  3. Crie e implemente uma abordagem para copiar dados corporativos e separar fontes de dados de relatório. Você pode usar tecnologias como Replicação, SQL Server Integration Services ou um produto de terceiros.

  4. Instale o Reporting Services no modo de instalação somente para arquivos de forma que possa defini-lo com as configurações válidas para acesso externo. No Assistente de Instalação do SQL Server, use a opção Instalar mas não configurar.

  5. Execute a ferramenta Configuração do Reporting Services depois que instalação for concluída para configurar o servidor de relatório:

    1. Verifique se o serviço é executado em uma conta de menos privilégios. Evite usar Sistema Local. Se você selecionou Sistema Local, altere a conta para usar o NetworkService ou uma conta de usuário de domínio.

    2. Defina uma URL de servidor de relatório e opcionalmente uma URL de Gerenciador de Relatórios:

      Você deve criar várias URLs para oferecer suporte ao acesso através de um FQDN (nome de domínio totalmente qualificado) que será usado por usuários externos e uma URL diferente que usa o nome da rede. Usar duas URLs diferentes permitirá conectar ao servidor de relatório se a sua conexão com a Internet estiver desabilitada ou offline.

      Você deve selecionar certificados SSL para as URLs FQDN que definir.

    3. Crie o banco de dados do servidor de relatórios. Se a instância do SQL Server estiver em um domínio diferente e o Kerberos 5.0 não estiver habilitado, use a autenticação do SQL Server para a conexão de banco de dados de servidor de relatório. Proteja a conexão entre o computador do servidor de relatório e a instância do SQL Server Mecanismo de Banco de Dados usando SSL ou IPSec.

  6. Crie e implante uma extensão de autenticação personalizada. Se você estiver usando uma tecnologia de logon único que seja implementada como um filtro ISAPI, deverá usar o servidor ISA para oferecer suporte ao filtro ISAPI. O ouvinte de HTTP no Reporting Services não oferece suporte a filtros ISAPI.

  7. Configure as atribuições de função que usam os princípios de segurança da extensão de autenticação e mapeie-os para as funções que concedem permissões para operações de servidor de relatório.

  8. Crie e implante um aplicativo front-end de Internet que use o controle ReportViewer de servidor Web.

  9. Publique relatórios e outros tipos de conteúdo no servidor de relatório.

  10. Defina as configurações de firewall. Verifique se as configurações de firewall permitem acesso mínimo a computadores e aplicativos downstream.

Configurações de firewall

As URLs padrão para aplicativos de servidor de relatório assumem que a porta 80 está habilitada e disponível para o servidor de relatório. Se você estiver usando o firewall do Windows, deverá abrir a porta 80 ou outra porta que esteja disponível para solicitações HTTP de servidor de relatório. Se usar uma porta diferente, especifique-a nas URLs de servidor de relatório. Para obter mais informações, consulte Como configurar um firewall para acesso ao servidor de relatório. Para obter mais informações sobre as definições padrão do firewall Windows e uma descrição das portas TCP que afetam o Mecanismo de Banco de Dados e Analysis Services, o Reporting Services e o Integration Services, consulte Configurando o Firewall do Windows para permitir acesso ao SQL Server.

Controle ReportViewer de servidor Web em um aplicativo de Internet

Para implantar relatórios em um aplicativo de Internet, é possível inserir o controle ReportViewer de servidor Web em um aplicativo que você criar e implantar. O controle ReportViewer de servidor Web está incluído no Visual Studio 2005 e posterior e pode ser distribuído gratuitamente com seu aplicativo. Você pode configurar o controle para exibir relatórios executados em um servidor de relatório. A conexão entre seu aplicativo e o servidor de relatório é manipulada pelo controle, através da interface de programação de serviço Web. Toda a autenticação e autorização é manipulada pelo seu aplicativo, que se conecta ao servidor de relatório através de uma única conexão confiável de usuário.

Para obter mais informações, consulte Reporting Services e controles ReportViewer no Visual Studio 2010.

Gerenciador de Relatórios como um front-end da Web de Internet ou extranet

O Gerenciador de Relatórios não foi criado como um aplicativo de Internet, mas se não for possível criar um aplicativo de Internet personalizado, você poderá usá-lo para exibir relatórios em uma conexão com a Internet. As sugestões a seguir são oferecidas como sugestões de prática recomendada para implantação:

  • Considere a instalação do Gerenciador de Relatórios como uma instância separada em um servidor de aplicativo. O Gerenciador de Relatórios é executado no serviço Servidor de Relatório. Portanto, para instalar o Gerenciador de Relatórios, é necessário instalar o Reporting Services e desativar o serviço Web e os recursos de agendamento e entrega do serviço. Para obter melhores resultados, instale o Reporting Services em um servidor Web da Internet que use o modo de instalação somente para arquivos. No Assistente de Instalação do SQL Server, use a opção Instalar mas não configurar.

  • Crie e implante uma extensão de segurança personalizada para oferecer suporte à autenticação de formulários ou tecnologia de logon único.

  • Configure o Gerenciador de Relatórios para permissões mínimas. A função Navegador e a função Usuário do Sistema são suficientes para exibir relatórios.

  • Para apontar o Gerenciador de Relatórios para uma instância de servidor de relatório diferente que seja executada em um computador separado, é necessário configurar a URL do Gerenciador de Relatórios e modificar as configurações de <ReportServerVirtualDirectory> e <ReportServerUrl> no arquivo RSReportServer.config para apontar o Gerenciador de Relatórios para a instância de servidor de relatório.

  • No servidor de relatório ao qual você está se conectando, desative os recursos que não serão usados. Exemplos podem incluir Meus Relatórios, assinatura e entrega, Construtor de Relatórios e impressão de cliente.

Definindo configurações de proxy em arquivos Web.config

Se você estiver usando o Gerenciador de Relatórios como um aplicativo front-end para implantação de Internet e o servidor de relatório também estiver instalado no mesmo computador, é necessário especificar uma configuração Web.config que permita ao Gerenciador de Relatórios ignorar o servidor proxy ao enviar solicitações para um servidor de relatório local instalado no mesmo computador.

A configuração Web.config é a configuração de rede defaultProxy do System.NET. Por padrão, defaultProxy é desabilitado no arquivo Web.config para o Gerenciador de Relatórios. Essa é a configuração recomendada quando o Gerenciador de Relatórios e o servidor de relatório são implantados juntos no mesmo computador.

Se você fez uma atualização de uma versão anterior do Reporting Services, o arquivo Web.config do Gerenciador de Relatórios não inclui a definição de configuração defaultProxy. é possível adicionar e definir a configuração defaultProxy para que ignore o servidor proxy em instalações nas quais o Gerenciador de Relatórios e o servidor de relatório sejam executados no mesmo computador. Copie as seguintes definições de configuração no arquivo Web.config do Gerenciador de Relatórios:

<configuration>
...
<system.net>
  <defaultProxy enabled="false" />
</system.net>
</configuration>

Para obter mais informações sobre essas configurações, consulte "Configurando aplicativos da Internet" e "Elemento defaultProxy (Configurações de Rede)" no Microsoft .NET Framework Guia do Desenvolvedor.

Considerações de autenticação para implantação de extranet e Internet

Para implantar um servidor de relatório em um cenário de extranet que ofereça suporte a conexões de contas predefinidas do Microsoft Active Directory, é possível usar a extensão de segurança padrão da Autenticação do Windows. Planeje configurar o servidor para conexões SSL (Secure Sockets Layer) e autenticação Básica. Você pode usar a ferramenta Configuração do Reporting Services para mapear um certificado existente para uma URL do servidor de relatório. É possível modificar arquivos de configuração para especificar o tipo de autenticação.

Para implantar um servidor de relatório em um cenário de extranet que ofereça suporte a conexões de tecnologia de logon único ou a um modelo de autenticação baseado em formulários que armazene informações de identidade do usuário em um banco de dados, é necessário criar uma extensão de autenticação para substituir a extensão de segurança padrão da Autenticação do Windows. A autenticação baseada em formulários em geral é usada quando você abre um servidor de relatório ao público mas quer que apenas usuários autenticados exibam o conteúdo. Por padrão, o SQL Server Reporting Services não fornece um módulo de autenticação baseado em formulários. Para obter mais informações sobre como criar um, consulte Implementando uma extensão de segurança nos Manuais Online do SQL Server.

Verificando a implantação de Internet

Para verificar se a sua conexão de servidor de relatório é acessível, você deve ser capaz de exibir o namespace da pasta do servidor de relatórios em uma conexão com a Internet, digitando http: (ou https:)//<nome-de-domínio-totalmente-qualificado-do-servidor-web>/reportserver, onde /reportserver é o nome padrão do diretório virtual do servidor de relatórios.