Delegação de identidades para o SQL Server Reporting Services (SharePoint Server 2010)

 

Aplica-se a: SharePoint Server 2010

Tópico modificado em: 2016-11-30

Neste cenário, você configura um par de servidores do SSRS (SQL Server Reporting Services) com balanceamento de carga em uma configuração escalonada em execução no modo integrado do SharePoint. Os servidores são configurados para aceitar a autenticação Kerberos e delegam a autenticação a um cluster de back-end do SQL Server.

Neste cenário, como o farm do SharePoint Server e a fonte de dados do Reporting Services estão no mesmo domínio, nós configuramos a delegação restrita de Kerberos de forma a permitir a delegação de identidade à fonte de dados de back-end. Se você precisar fazer a autenticação em fontes de dados de outros domínios na mesma floresta, será necessário configurar a delegação Kerberos (não restrita) básica. Lembre-se de que o Reporting Services não usa o C2WTS e, portanto, você pode usar a delegação básica.

Observação

Se a instalação estiver sendo feita no Windows Server 2008, talvez seja necessário instalar o seguinte hotfix para a autenticação Kerberos:
Uma autenticação Kerberos falha com o código de erro 0X80090302 ou 0x8009030f em um computador que está executando o Windows Server 2008 ou Windows Vista quando o algoritmo AES é usado (https://support.microsoft.com/kb/969083/pt-br)

Dependências do cenário

Lista de verificação para configuração

Área de configuração Descrição

Active Directory

Criar a conta de serviço do SSRS

Configurar a delegação restrita de Kerberos

SQL Server Reporting Services

Instalar e configurar o SSRS no modo de expansão com balanceamento de carga

Modificar Web.Config

Modificar ReportingServer.config

Configurar o SharePoint Server

Configurar a integração com o Reporting Services

Adicionar um servidor de relatórios à integração

Definir padrões do servidor

Verificar a configuração

Criar uma biblioteca de documentos para relatórios

Configurar conjuntos de sites para o Reporting Services

Criar e publicar um relatório de teste no SQL Server Business Intelligence Studio

Exibir o relatório de teste no Internet Explorer

Detalhes do ambiente do cenário

Diagrama de ambiente de cenário

Neste cenário, as contas de serviço do pool de aplicativos do IIS (Serviços de Informações da Internet) são configuradas para delegação ao serviço do SSRS (SQL Server Reporting Services). A conta de serviço do SSRS está configurada para delegar credenciais ao serviço do SQL Server. Observe que o SQL Server Reporting Services no modo integrado do SharePoint não usa a autenticação de Declarações entre farms e exige a autenticação Kerberos para autenticação delegada. Para obter mais informações, consulte o artigo sobre a autenticação de Declarações e o Reporting Services.

Delegação Kerberos entre domínios

Neste exemplo, a fonte de dados à qual o SSRS se conecta reside no mesmo domínio dos servidores do SSRS. Em algumas situações, você pode querer acessar fontes de dados fora do domínio em que o SSRS reside. Para autenticar entre domínios com delegação, é preciso configurar a delegação básica (sem restrição) na conta de serviço do SSRS. Lembre-se de que isso é possível porque o serviço do SSRS não se baseia no C2WTS (Serviço de Tokens de Declarações para Tokens do Windows) e, portanto, não exige transição de protocolo por meio da delegação restrita de Kerberos. Observe também que a delegação entre florestas não é possível, nem mesmo com a delegação básica.

Instruções de configuração passo a passo

Configurar o DNS

Configure o DNS para o grupo de servidores NLB do SSRS no seu ambiente. Neste exemplo, temos dois servidores do SSRS, VMSSRS01 e VMSSRS02, que possuem balanceamento de carga e estão resolvidos para o mesmo VIP (192.168.24.180/24) de NLB. O VIP será mapeado para o host FarmReports e terá a URL http://FarmReports .

Para obter informações gerais sobre como configurar o DNS, consulte o artigo sobre gerenciamento de registros de DNS.

Configure um novo Registro DNS A para o host do SSRS. Neste exemplo, temos um host FarmReports configurado de modo a ser resolvido para o VIP com balanceamento de carga.

Serviço de diretório Active Directory

Criar a conta de serviço do SSRS

Como prática recomendada, o SQL Server Reporting Services deve ser executado em sua própria identidade de domínio. Neste exemplo, as seguintes contas foram criadas:

Serviço Identidade do Serviço

SQL Server Reporting Services

vmlab\svcSQLRS

Configurar Nomes de Entidade de Serviço

Para que o SSRS se conecte e se autentique em fontes de dados externas usando a autenticação Kerberos, as contas de serviço do Serviço Web Servidor de Relatórios e do Gerenciador de Relatórios e a conta de serviço para a fonte de dados externa devem ter nomes de entidade de serviço configurados. Consulte os cenários 1 e 2 (Configuração principal e Autenticação Kerberos para SQL OLTP) nesta série de artigos para configurar e validar os SPNs necessários nos aplicativos Web do SharePoint e nas contas de serviço do SQL Server. Para os servidores do SSRS, foram definidos os seguintes SPNs:

Host DNS Identidade do Pool de Aplicativos do IIS Nomes de Entidade de Serviço

FarmReports.vmlab.local

vmlab\svcSQLRS

HTTP/FarmReports

HTTP/ FarmReports.vmlab.local

Neste exemplo, os seguintes comandos foram executados:

SetSPN -S HTTP/FarmReports vmlab\svcSQLRS

SetSPN -S HTTP/FarmReports.vmlab.local vmlab\svcSQLRS

Configurar delegação

A delegação Kerberos deve ser configurada para que o SSRS delegue a identidade do cliente à fonte de dados de back-end. Neste exemplo, o SSRS consulta dados de um banco de dados transacional do SQL Server usando a identidade do cliente e, portanto, a delegação Kerberos é necessária. A KCD (delegação restrita de Kerberos) não é obrigatória neste cenário (porque a transição de protocolo não é necessária), mas ela é configurada como prática recomendada.

A conta de serviço do SSRS em execução nos serviços do SSRS deve ser confiável para delegar credenciais a cada serviço de back-end. No nosso exemplo, são necessários os seguintes caminhos de delegação:

Tipo de entidade de segurança Nome da entidade de segurança Delegada ao serviço

Usuário

Vmlab\svcPortal10App

HTTP/FarmReports

HTTP/FarmReports.vmlab.local

Usuário

Vmlab\svcSQLRS

MSSQLSVC/MySqlCluster.vmlab.local:1433

Opcionalmente, se quiser criar relatórios com base nas fontes de dados do Analysis Services, configure os seguintes caminhos de delegação:

Tipo de entidade de segurança Nome da entidade de segurança Delegada ao serviço

Usuário

Vmlab\svcSQLRS

MSOLAPSvc.3/MySqlCluster.vmlab.local

Para configurar a delegação restrita

  1. Abra as propriedades do Objeto do Active Directory em Usuários e Computadores do Active Directory.

  2. Navegue até a guia Delegação.

  3. Selecione Confiar neste usuário para delegação apenas aos serviços especificados.

    Observação

    Para a conta de serviço do SSRS, se você precisar se autenticar em fontes de dados na mesma floresta, mas fora do domínio em que o servidor do SSRS reside, configure a delegação básica em vez da delegação restrita. Você pode fazer isso selecionando Confiar no computador para delegação a qualquer serviço. Lembre-se de que não é possível haver a delegação Kerberos entre florestas.

  4. Como opção, selecione Usar qualquer protocolo de autenticação. Isso habilita a transição de protocolo.

  5. Clique no botão Adicionar para selecionar a entidade de serviço à qual é possível fazer a delegação.

  6. Selecione Usuários e Computadores.

  7. Selecione a conta de serviço que executa o serviço ao qual você deseja fazer a delegação. Neste exemplo, essa é a conta de serviço para o SQL Server Reporting Services.

    Observação

    A conta de serviço selecionada deve ter um SPN aplicado. No nosso exemplo, o SPN da conta (HTTP/FarmReports.vmlab.local) foi configurado anteriormente no cenário.

  8. Clique em OK. Em seguida, será solicitado que você selecione os SPNs para os quais deseja fazer a delegação na página seguinte.

  9. Selecione o serviço ou escolha Selecionar Tudo e clique em OK.

    Agora, você verá os SPNs selecionados na lista Serviços aos quais esta conta pode apresentar credenciais delegadas.

  10. Repita estas etapas para cada caminho de delegação identificado anteriormente nesta seção. Será necessário configurar a delegação a partir da conta de serviço do SQL Server Reporting Services para uma ou mais fontes de dados de back-end (SQL OLTP ou SQL AS nos nossos cenários).

    Observação

    Para a conta de serviço do SSRS, se você precisar se autenticar em fontes de dados na mesma floresta, mas fora do domínio em que o servidor do SSRS reside, configure a delegação básica em vez da delegação restrita. Para isso, selecione Confiar no computador para delegação a qualquer serviço. Lembre-se de que não é possível haver a delegação Kerberos entre florestas.

Verificar o SPN MSSQLSVC para a conta de serviço que executa o serviço no SQL Server (etapa realizada no Cenário 2)

Verifique a existência do SPN para a conta de serviço do Analysis Services (vmlab\svcSQL) usando o seguinte comando SetSPN:

SetSPN -L vmlab\svcSQL

Você verá o seguinte:

MSSQLSVC/MySqlCluster MSSQLSVC/MySqlCluster.vmlab.local:1433

Verificar o SPN MSOLAPSvc.3 da Conta de Serviço que executa o serviço do SSAS no servidor do SQL Server Analysis Services (executado no Cenário 3)

Verifique a existência do SPN da conta de serviço do SQL Server (vmlab\svcSQLAS) usando o seguinte comando SetSPN:

SetSPN -L vmlab\svcSQLAS

Você verá o seguinte:

MSOLAPSvc.3/MySqlCluster MSOLAPSvc.3/MySqlCluster.vmlab.local

SQL Server Reporting Services

Instalar o SharePoint Server 2010

O SQL Server Reporting Services exige que o SharePoint Server 2010 seja instalado em cada servidor do SSRS para a execução do SSRS no modo integrado do SharePoint. Instale o SharePoint Server 2010 em cada servidor de relatórios e associe esses servidores ao farm do SharePoint Server.

Instalar e configurar o SSRS no modo de expansão com balanceamento de carga

Instruções detalhadas passo a passo sobre como configurar o SQL Server Reporting Services em uma configuração dimensionada com balanceamento de carga estão além do escopo deste documento. Para obter instruções detalhadas sobre como instalar o SSRS, consulte o artigo sobre topologias de implantação do Reporting Services no modo integrado do SharePoint. Depois que o SSRS tiver sido instalado, conclua as etapas adicionais de configuração do SSRS descritas a seguir para finalizar a instalação.

Modificar Web.config nos servidores do SSRS

As alterações a seguir devem ser feitas nos arquivos web.config em todos os servidores do SSRS. O arquivo web.config pode ser encontrado no diretório Arquivos de Programas no qual o SSRS está instalado.

Adicionar o elemento <chavedoComputador>

Os servidores do SSRS em uma configuração com balanceamento de carga precisam do mesmo conjunto de chaves de computador em todos os servidores. O elemento de chave do computador deve ser adicionado como filho do elemento <system.web> em web.config. Veja a seguir um exemplo de chave de computador:

<machineKey
validationKey="54AEBD3BC893726E9B84D30F4970CB58F2086C2DAEE2F8D34A65A0632F4676DDBBC38779F2972C6596931E
13BD07A772BD4B9395BE38A43E461079E45D594E53"
decryptionKey=""
validation="SHA1"
decryption="AES"
/>

Importante

NÃO USE O EXEMPLO DE CHAVE DE COMPUTADOR DO NOSSO AMBIENTE. Gere seus próprios valores de chave para o seu ambiente.

Modificar ReportingServer.config

As alterações a seguir devem ser feitas nos arquivos ReportingServer.config em todos os servidores do SSRS. O arquivo ReportingServer.config pode ser encontrado no diretório de arquivos de programas no qual o SSRS está instalado:

Habilitar a autenticação Kerberos

Para habilitar a autenticação Kerberos, defina o tipo de autenticação como "RSWindowsNegotiate". Altere o elemento <AuthenticationTypes/> e adicione <RSWindowsNegotiate/>:

<AuthenticationTypes>
    <RSWindowsNegotiate/>
</AuthenticationTypes>

Modificar a raiz da URL

Adicionar a URL para o servidor de relatórios à marca <UrlRoot> encontrada na marca <service> de ReportingServer.Config

<UrlRoot>http://FarmReports/reportserver</UrlRoot>

Configurar BackConnectionHostNames no Registro

Para permitir que os servidores do SQL Server Reporting Services se autentiquem uns nos outros em um único computador, a detecção de loopback do NTLM precisa ser utilizada. Em vez de desabilitar a detecção de loopback, uma prática ainda melhor é configurar o valor de BackConnectionHostNames no Registro de cada servidor do SSRS. Para obter mais informações sobre BackConnectionHostNames, consulte o artigo que descreve uma mensagem de erro ao usar o SQL Server 2008 Reporting Services:.

No nosso exemplo, configuramos os seguintes valores para BackConnectionHostNames:

  • FarmReports

  • FarmReports.vmlab.local

Depois de definir os valores de BackConnectionHostNames, reinicie o servidor do SSRS.

Configurar o SharePoint Server

Na Administração Central, você encontra opções de configuração do farm para o SSRS. Observe que, no SharePoint Server 2010, não é necessário instalar um componente do SSRS separado para Web Parts e a administração do SSRS. Para acessar as opções do farm do SSRS, navegue até a Administração Central e visualize a opção Reporting Services na seção Configurações Gerais de Aplicativos.

Conceder permissões à conta de serviço do Reporting Services no banco de dados de conteúdo de aplicativos Web

Uma etapa necessária na configuração do SQL Server Reporting Services no modo integrado do SharePoint é permitir que a conta de serviço do Reporting Services acesse os bancos de dados de conteúdo para aplicativos Web que hospedam relatórios. Neste exemplo, concedemos acesso para a conta do Reporting Services ao banco de dados de conteúdo do aplicativo Web "portal" via Windows PowerShell.

Execute o comando a seguir no Shell de Gerenciamento do SharePoint 2010:

$w = Get-SPWebApplication -Identity http://portal

$w.GrantAccessToProcessIdentity("vmlab\svcSQLRS")

Configurar a Integração com o Reporting Services

Na caixa de diálogo Integração do Reporting Services, especifique a URL com balanceamento de carga do servidor de relatórios. Além disso, selecione a opção Recurso ativo em todos os conjuntos de sites existentes para ativar automaticamente o recurso Reporting Services nos seus conjuntos de sites.

Adicionar cada servidor de relatórios à integração

Na caixa de diálogo Adicionar um servidor de relatórios à integração, especifique cada um dos nós do grupo NLB do Reporting Services. Você precisará abrir essa caixa de diálogo para cada um dos servidores que estiver sendo adicionado à integração. Não há uma maneira de adicionar vários servidores em uma única operação.

Definir padrões do servidor

Neste ponto, a integração com o SSRS deve ser configurada. Para validar a configuração, abra a página Padrões do Servidor. Nenhuma alteração será necessária para o exemplo deste documento.

Verificar a configuração

Criar uma biblioteca de documentos para relatórios

Crie uma biblioteca de documentos para hospedar relatórios do SSRS no seu site do SharePoint. Neste exemplo, vamos supor a existência de uma biblioteca de documentos chamada "relatórios" em http://portal/relatórios.

Validar configurações de conjunto de sites para o Reporting Services

No navegador, navegue até as Configurações do Site referentes ao site que está hospedando a biblioteca de documentos para relatórios do SSRS. Em Configurações do Site, você verá uma nova categoria denominada Reporting Services.

Se o recurso Reporting Services não estiver visível na lista de recursos de conjuntos de sites, talvez seja necessário ativá-lo na Administração Central. Para obter mais informações, consulte o artigo sobre como ativar o recurso de servidor de relatórios na Administração Central do SharePoint (https://go.microsoft.com/fwlink/?linkid=196878&clcid=0x416).

Clique no link de configurações do site do Reporting Services para garantir que as configurações são acessíveis.

Observação

Nenhuma alteração nas Configurações do Site do Reporting Services será necessária nesta demonstração.

Criar e publicar um relatório de teste no SQL Server Business Intelligence Development Studio

Depois de configurar o SSRS e a integração com o SharePoint Server, crie um relatório de teste para garantir que a delegação de identidade esteja funcionando corretamente.

  1. Abra o SQL Server Business Intelligence Development Studio. Clique em Arquivo, aponte para Novo e clique em Projeto.

  2. Selecione Assistente de Projeto do Servidor de Relatório e insira um nome de projeto.

  3. Em seguida, configure uma nova fonte de dados. Escolha o tipo Microsoft SQL Server e clique no botão Editar.

  4. Em Propriedades da Conexão, insira as informações para se conectar ao cluster de demonstração do SQL Server criado no cenário 2.

  5. Abra o designer de consultas, clique com o botão direito do mouse na janela de consulta e selecione Adicionar tabela.

  6. Escolha a tabela Sales (criada no cenário 2) e selecione Todas as Colunas.

  7. Selecione um tipo de relatório tabular.

  8. No nosso exemplo, agrupamos por região; você pode ignorar essa etapa se desejar.

  9. Após a criação do projeto, abra as propriedades desse projeto no menu Projeto.

  10. Configure as seguintes propriedades do projeto:

    1. TargetDatasetFolder — defina como a pasta do relatório de teste criada anteriormente

    2. TargetReportFolder — defina como a pasta do relatório de teste criada anteriormente

    3. TargetReportPartFolder — defina como a pasta do relatório de teste criada anteriormente

    4. TargetServerURL — defina como a URL do aplicativo Web que está hospedando o relatório

  11. Implante o relatório na biblioteca do SharePoint. No menu de compilação, selecione Implantar <nome do projeto>.

  12. Se tiver êxito, você verá a mensagem de êxito da implantação na janela Saída.

Exibir o relatório de teste no Internet Explorer

Abra no navegador a biblioteca de documentos de relatórios criada nas etapas anteriores deste cenário. Você verá o arquivo de relatório que acabou de publicar. Se o relatório não aparecer, talvez seja necessário ativar os recursos do Reporting Services no seu conjunto de sites. Para obter mais informações, consulte o artigo sobre como ativar o recurso de servidor de relatórios na Administração Central do SharePoint (https://go.microsoft.com/fwlink/?linkid=196878&clcid=0x416).

Clique no relatório para renderizá-lo no navegador.

Para verificar mais a fundo a delegação e a conexão de dados, altere a fonte de dados no SQL Server Management Studio e atualize a conexão de dados do relatório do SSRS no navegador. Você verá as alterações de dados refletidas no relatório.

Configuração SSL para o Reporting Services

Em alguns ambientes, pode ser necessário proteger as comunicações entre servidores Web front-end e servidores do SSRS com SSL. Uma sequência passo a passo detalhada de como configurar o SSL para o Reporting Services está fora do escopo deste documento, mas de um modo geral, estas são as etapas a serem executadas:

  1. Configure cada servidor de relatórios para SSL. Consulte o artigo sobre como configurar um servidor de relatórios para conexões SSL (Secure Sockets Layer) (https://go.microsoft.com/fwlink/?linkid=196881&clcid=0x416).

  2. Atualize ReportingServer.config. Altere <UrlRoot> para a nova URL https://.

  3. Reinicie o serviço do SQL Server Reporting Services.

  4. Na Administração Central, modifique as configurações de integração com o Reporting Services e altere a URL do Serviço Web Servidor de Relatórios para a nova URL https://.

  5. Reinicie o IIS em todas as instâncias do SharePoint Server que estejam executando o serviço do aplicativo Web.

Não é necessário alterar nenhum dos SPNs criados na configuração do Reporting Services com HTTP nas etapas anteriores. O SPN para um serviço HTTP via SSL continua sendo HTTP/<serviço>. Você pode ver isso usando NetMon para exibir o servidor Web front-end que está se comunicando com o Servidor do Reporting Services.