Proteção Estendida para Autenticação com Reporting Services

A Proteção Estendida é um conjunto de aprimoramentos das versões recentes do sistema operacional Windows Microsoft. A Proteção Estendida aprimora a maneira como as credenciais e a autenticação podem ser protegidas através de aplicativos. O recurso em si não oferece proteção diretamente contra ataques específicos, tais como encaminhamento de credenciais, mas oferece uma infraestrutura para aplicativos tais como Reporting Services para fiscalizar a Proteção Estendida para Autenticação.

Os principais aprimoramentos de autenticação que fazem parte de proteção estendida são a associação de serviço e a associação de canal. A associação de canal usa um token de associação de canal (CBT) para verificar se o canal estabelecido entre dois terminais não foi comprometido. A associação de serviço usa Nomes de Serviço Principais (SPN) para verificar o destino pretendido dos tokens de autenticação. Para obter mais informações básicas sobre a proteção estendida, consulte Autenticação Integrada do Windows com Proteção Estendida.

O SQL Server 2008 R2 Reporting Servicessuporta e impõe Proteção Estendida que foi ativada no sistema operacional e configurada no Reporting Services. Por padrão, o Reporting Servicesaceita solicitações que especificam a autenticação Negotiate ou NTLM e, portanto, podem aproveitar o suporte à Proteção Estendida no sistema operacional e os recursos da proteção estendida do Reporting Services.

Observação importanteImportante

Por padrão, a Proteção Estendida não está habilitada no o Windows. Para obter informações sobre como habilitar a Proteção Estendida no Windows, consulte Proteção Estendida para Autenticação. O sistema operacional e a pilha de autenticação de cliente devem suportar a Proteção Estendida de forma que a autenticação seja bem-sucedida. Para sistemas operacionais mais antigos, pode ser necessário instalar mais de uma atualização para um computador completo compatível com a Proteção Estendida. Para obter informações sobre os desenvolvimentos mais recentes da Proteção Estendida, consulte as informações atualizadas do com a Proteção Estendida.

Visão Geral da Proteção Estendida do Reporting Services

SQL Server 2008 R2 Reporting Services suporta e impõe a Proteção Estendida que foi ativada no sistema operacional. Se o sistema operacional não suportar a proteção estendida ou se o recurso não foi ativado no sistema operacional, o recurso de Proteção Estendida do Reporting Services não conseguirá ser autenticado. A Proteção Estendida do Reporting Services também exige um Certificado de SSL. Para obter mais informações, consulte Configurando um servidor de relatório para conexões SSL

Observação importanteImportante

Por padrão, o Reporting Services não vem com a Proteção Estendida habilitada. O recurso pode ser ativado modificando o arquivo de configuração rsreportserver.config ou usando APIs do WMI para atualizar o arquivo de configuração. O SQL Server 2008 R2 Reporting Services não tem uma interface de usuário para modificar ou exibir configurações da proteção estendida. Para obter mais informações, consulte a seção de parâmetros de configuração neste tópico.

Problemas que normalmente ocorrem em virtude de alterações nas configurações de proteção estendida ou de parâmetros incorretamente configurados não são expostos com mensagens de erro óbvias nem com janelas de caixa de diálogo. Problemas relacionados à configuração e à compatibilidade de proteção estendida geram falhas de autenticação e erros nos logs de rastreamento do Reporting Services. Para obter informações sobre como solucionar problemas e verificar a proteção estendida com o Reporting Services, consulte Solução de problemas de proteção estendida (Reporting Services)

Observação importanteImportante

O Cliente SQL do Microsoft não foi atualizado para suportar a proteção estendida no momento da liberação do SQL Server 2008 R2. O Cliente SQL é usado para conexão a fontes de dados do SQL Server e ao banco de dados de catálogo Reporting Services. Esta limitação no Cliente de SQL afeta Reporting Services das seguintes formas:

O SQL Server que executa o banco de dados de catálogo Reporting Services não pode ter a proteção estendida ativada; caso contrário, o servidor de relatório não se conectará com sucesso ao banco de dados de catálogo e gerará erros de autenticação.

Os Servidores SQL usados como fontes de dados de relatórios Reporting Services não podem ter a proteção estendida habilitada. Caso contrário, as tentativas do servidor de relatório de se conectar à fonte de dados de relatório falharão e gerarão erros de autenticação. Um possível contorno é alterar as fontes de dados do Reporting Services para usar provedores originais e não o Cliente de SQL. Por exemplo, configure as fontes de dados para o driver ODBC e, então será usado o SQL Native Client, que permite o uso da Proteção Estendida.

Atualizar

  • Atualizar um servidor Reporting ServicesaSQL Server 2008 R2 acrescenta parâmetros de configuração com valores padrão ao arquivo rsreportserver.config. Se as configurações já estavam presentes, a instalação do SQL Server 2008 R2 as preservará no arquivo rsreportserver.config.

  • Quando os parâmetros de configuração forem acrescentados ao arquivo de configuração rsreportserver.config, o comportamento padrão será que o recurso da proteção estendida do Reporting Services esteja desativado e você deverá habilitar o recurso da forma descrita neste tópico. Para obter mais informações, consulte a seção de parâmetros de configuração neste tópico.

  • O valor padrão da configuração RSWindowsExtendedProtectionLevel é Off.

  • O valor padrão da configuração RSWindowsExtendedProtectionScenario é Proxy.

  • O Supervisor de Atualização do SQL Server 2008 R2 não verifica se o suporte à Proteção Estendida do sistema operacional ou da instalação atual do Reporting Services está habilitada.

O que a proteção estendida do Reporting Services não contempla

As seguintes áreas de recursos e os cenários a seguir não são contemplados pelo recurso de proteção estendida do Reporting Services:

  • Autores de extensões de segurança personalizadas do Reporting Services devem acrescentar o suporte à proteção estendida à sua extensão de segurança personalizada.

  • Componentes de terceiros incluídos ou usados por uma instalação do Reporting Services devem ser atualizados pelos fornecedores externos para contemplar a proteção estendida. Para obter mais informações, entre em contato com o fornecedor externo.

Cenários e recomendações de implantação

Os cenários a seguir ilustram implantações e topologias diferentes e a configuração recomendada para protegê-los com a Proteção Estendida do Reporting Services.

Direto

Este cenário descreve a conexão direta a um servidor de relatórios, por exemplo, um ambiente de intranet.

Cenário

Diagrama do cenário

Como proteger

Comunicação direta por SSL.

O servidor de relatórios irá impor ao cliente à Associação de Canal do servidor de relatórios.

Acesso direto de proteção estendida com SSL

1) Aplicativo cliente

2) Servidor de relatórios

  • A associação de serviço não é necessária porque o canal de SSL será usado para a Associação de Canal.

Defina RSWindowsExtendedProtectionLevel como Allow ou Require.

Defina RSWindowsExtendedProtectionScenario como Direct.

Comunicação direta por HTTP. O servidor de relatórios irá impor ao Cliente à Associação de Serviço do servidor de relatórios.

Proteção estendida e acesso direto

1) Aplicativo cliente

2) Servidor de relatórios

  • Não há nenhum Canal de SSL. Portanto, não é possível nenhuma imposição de Associação de Canal.

  • A associação de serviço pode ser validada, entretanto, ela sozinha não constitui uma defesa completa sem a associação de Canal e a Associação de Serviço e só protegerá contra ameaças básicas.

Defina RSWindowsExtendedProtectionLevel como Allow ou Require.

Defina RSWindowsExtendedProtectionScenario como Any.

Proxy e Balanceamento de Carga da Rede

Aplicativos clientes se conectam a um dispositivo ou software que executa o SSL e transmite as credenciais ao servidor para autenticação, por exemplo, um extranet, Internet ou Intranet Segura. O cliente se conecta a um Proxy ou todos os clientes usam um proxy.

A situação é a mesma quando você usa um dispositivo de Balanceamento de Carga de Rede (NLB).

Cenário

Diagrama do cenário

Como proteger

Comunicação por HTTP. O servidor de relatórios irá impor ao cliente à Associação de Serviço do servidor de relatórios.

Acesso indireto de proteção estendida de RS

1) Aplicativo cliente

2) Servidor de relatórios

3) Proxy

  • Não há nenhum Canal de SSL. Portanto, não é possível nenhuma imposição de Associação de Canal.

Defina RSWindowsExtendedProtectionLevel como Allow ou Require.

Defina RSWindowsExtendedProtectionScenario como Any.

  • O servidor de relatórios deve ser configurado para saber o nome do servidor de proxy para verificar se a associação de serviço é imposta corretamente.

Comunicação por HTTP.

O servidor de relatórios irá impor ao cliente à Associação de Canal do Proxy e à Associação de Serviço de servidor de relatórios.

Acesso indireto de proteção estendida com SSL

1) Aplicativo cliente

2) Servidor de relatórios

3) Proxy

  • O canal SSL com o proxy está disponível. Portanto, a associação de canal com o proxy pode ser imposta.

  • A Associação de Serviço também pode ser imposta.

  • O nome de Proxy deve ser conhecido pelo servidor de relatórios e o administrador de servidor de relatórios deverá criar uma reserva de URL para ele, com um cabeçalho de host, ou configurar o nome de Proxy na entrada BackConnectionHostNames do Registro do Windows.

RSWindowsExtendedProtectionLevel para Allow ou Require.

Defina RSWindowsExtendedProtectionScenario como Proxy.

Comunicação indireta de HTTPS com um proxy seguro. O servidor de relatórios irá impor ao cliente à Associação de Canal do Proxy e o à Associação de Serviço de servidor de relatórios.

SSL e HTTPS de acesso indireto de proteção estendida

1) Aplicativo cliente

2) Servidor de relatórios

3) Proxy

  • O canal SSL com o proxy está disponível. Portanto, a associação de canal com o proxy pode ser imposta.

  • A Associação de Serviço também pode ser imposta.

  • O nome de Proxy deve ser conhecido pelo servidor de relatórios e o administrador de servidor de relatórios deverá criar uma reserva de URL para ele, com um cabeçalho de host, ou configurar o nome de Proxy na entrada BackConnectionHostNames do Registro do Windows.

RSWindowsExtendedProtectionLevel para Allow ou Require.

Defina RSWindowsExtendedProtectionScenario como Proxy.

Gateway

Este cenário descreve aplicativos Clientes que se conectam a um dispositivo ou software que realiza SSL e autentica o usuário. Então, o dispositivo ou software personifica o contexto de usuário ou o contexto de um usuário diferente antes de fazer uma solicitação ao servidor de relatórios.

Cenário

Diagrama do cenário

Como proteger

Comunicação indireta por HTTP.

O Gateway irá impor ao Cliente à associação de canal do Gateway. Há um Gateway para a Associação de Serviço de servidor de relatórios.

Acesso indireto de proteção estendida com SSL

1) Aplicativo cliente

2) Servidor de relatórios

3) Dispositivo de gateway

  • A Associação de Canal do cliente ao servidor de relatórios não é possível porque o gateway personifica um contexto e, portanto, cria um novo token de NTLM.

  • Não há nenhum SSL do Gateway para o servidor de relatórios. Portanto, a associação de canal não pode ser imposta.

  • A Associação de Serviço pode ser imposta.

Defina RSWindowsExtendedProtectionLevel como Allow ou Require.

Defina RSWindowsExtendedProtectionScenario como Any.

  • O dispositivo de Gateway deve ser configurado pelo seu administrador para impor a associação de canal.

Comunicação indireta de HTTPS com um gateway seguro. O Gateway irá impor ao cliente à Associação de Canal do Gateway e o servidor de relatórios irá impor ao Gateway à Associação de Canal do servidor de relatórios.

SSL e HTTPS de acesso indireto de proteção estendida

1) Aplicativo cliente

2) Servidor de relatórios

3) Dispositivo de gateway

  • A Associação de Canal do cliente ao servidor de relatórios não é possível porque o gateway personifica um contexto e, portanto, cria um novo token de NTLM.

  • O SSL do Gateway para o servidor de relatórios significa que a associação de canal pode ser imposta.

  • A Associação de Serviço não é obrigatória.

Defina RSWindowsExtendedProtectionLevel como Allow ou Require.

Defina RSWindowsExtendedProtectionScenario como Direct.

  • O dispositivo de Gateway deve ser configurado pelo seu administrador para impor a associação de canal.

Combinação

Este cenário descreve ambientes de Extranet ou Internet onde o cliente se conecta a um Proxy. Isso é combinado com um ambiente de intranet onde um cliente se conecta a um servidor de relatórios.

Cenário

Diagrama do cenário

Como proteger

Acesso indireto e direto do cliente ao serviço do servidor de relatórios sem SSL em conexões do cliente para o proxy ou do cliente para o servidor de relatórios.

Ambiente misto de proteção estendida

1) Aplicativo cliente

2) Servidor de relatórios

3) Proxy

4) Aplicativo cliente

  • A Associação de Serviço do cliente para o servidor de relatórios pode ser imposta.

  • O nome de Proxy deve ser conhecido pelo servidor de relatórios e o administrador de servidor de relatórios deverá criar uma reserva de URL para ele, com um cabeçalho de host, ou configurar o nome de Proxy na entrada BackConnectionHostNames do Registro do Windows.

Defina RSWindowsExtendedProtectionLevel como Allow ou Require.

Defina RSWindowsExtendedProtectionScenario como Any.

Acesso indireto e direto do cliente com o servidor de relatórios onde o cliente estabelece uma conexão SSL com o proxy ou servidor de relatórios.

Proteção estendida com SSL

1) Aplicativo cliente

2) Servidor de relatórios

3) Proxy

4) Aplicativo cliente

  • A Associação de Canal pode ser usada

  • O nome de Proxy deve ser conhecido pelo servidor de relatórios e o administrador de servidor de relatórios deverá criar uma reserva de URL para o proxy, com um cabeçalho de host ou configurar o nome de Proxy na entrada BackConnectionHostNames do Registro do Windows.

Defina RSWindowsExtendedProtectionLevel como Allow ou Require.

Defina RSWindowsExtendedProtectionScenario como Proxy.

Configurando a proteção estendida do Reporting Services

O arquivo rsreportserver.config contém os valores de configuração que controlam o comportamento da proteção estendida do Reporting Services.

Para obter mais informações sobre como usar e editar o arquivo de configuração do rsreportserver.config, consulte Arquivo de configuração RSReportServer. As configurações da proteção estendida também podem ser alteradas e inspecionadas com APIs do WMI. Para obter mais informações, consulte Método SetExtendedProtectionSettings (WMI MSReportServer_ConfigurationSetting).

Quando validação dos parâmetros de configuração falhar, os tipos de autenticação RSWindowsNTLM, RSWindowsKerberos e RSWindowsNegotiate são desativados no servidor de relatórios.

Parâmetros de configuração para a proteção estendida dos serviços de relatórios

A tabela a seguir fornece informações sobre os parâmetros de configuração que aparecem no rsreportserver.config para proteção estendida.

Configuração

Descrição

RSWindowsExtendedProtectionLevel

Especifica o grau de imposição da proteção estendida. Os valores válidos são Off, Allow e Require.

O valor padrão é Off.

O valor Off especifica que não há nenhuma verificação de associação de canal nem de associação de serviço.

O valor Allow suporta a proteção estendida mas não a exige. O valor Permitir especifica.

  • A proteção estendida será imposta para aplicativos clientes executados em sistemas operacionais que suportam a proteção estendida. A maneira como a proteção é imposta é determinada pelo parâmetro RsWindowsExtendedProtectionScenario.

  • A autenticação será permitida para aplicativos executados em sistemas operacionais que não suportam a proteção estendida.

O valor Require especifica:

  • A proteção estendida será imposta para aplicativos clientes executados em sistemas operacionais que suportam a proteção estendida.

  • A autenticação não será permitida para aplicativos executados em sistemas operacionais que não suportam a proteção estendida.

RsWindowsExtendedProtectionScenario

Especifica que formas de proteção estendida serão validadas: Associação de Canal, Associação de Serviço ou ambas. Os valores válidos são Any, Proxy e Direct.

O valor padrão é Proxy.

O valor Any especifica:

  • A autenticação Windows NTLM, Kerberos e Negotiate e uma associação de canal não são obrigatórias.

  • A Associação de Serviço é imposta.

O valor Proxy especifica:

  • A autenticação Windows NTLM, Kerberos e Negotiate quando um token de associação de canal estiver presente.

  • A Associação de Serviço é imposta.

O valor Direct especifica:

  • A autenticação Windows NTLM, Kerberos e Negotiate quando um CBT estiver presente, uma conexão SSL com o serviço atual estiver presente e quando o CBT da conexão SSL coincidir com o CBT do token NTLM, Kerberos ou Negotiate.

  • A Associação de Serviço não é imposta.

ObservaçãoObservação
Esta configuração será ignorada se RsWindowsExtendedProtectionLevel for definido como OFF.

Entradas de exemplo no arquivo de configuração rsreportserver.config:

<Authentication>
         <RSWindowsExtendedProtectionLevel>Allow</RSWindowsExtendedProtectionLevel>
         <RSWindowsExtendedProtectionScenario>Proxy</RSWindowsExtendedProtectionLevel>
</Authentication>

Associação de Serviço e SPNs incluídos

A associação de serviço usa Nomes de Serviço Principais (SPNs) para validar o destino pretendido de tokens de autenticação. O Reporting Services usa as informações existentes de reserva de URL para criar uma lista de SPNs considerados válidos. Usando as informações de reserva de URLs para validação de SPNs e reservas de URL permite que os administradores do sistema a gerenciem ambos a partir de um único local.

A lista de SPNs válidos é atualizada quando o servidor de relatórios é iniciado, quando são alterados os parâmetros de configuração da proteção estendida ou quando o domínio do aplicativo é reciclado.

A lista válida de SPNs é específica para cada aplicativo. Por exemplo, o Gerenciador de Relatórios e o Servidor de Relatórios terão, cada um, uma lista diferente de SPNs válidos calculada.

A lista de SPNs válido calculada para um aplicativo é determinada pelos seguintes fatores:

  • Cada reserva de URL.

  • Cada SPN recuperado do controlador de domínio para a conta de serviço dos serviços de relatórios.

  • Se uma reserva de URL contiver caracteres curinga ('*' ou '+'), o Servidor de Relatórios incluirá cada entrada da lista de hosts.

Fontes de coleta de hosts.

A tabela a seguir lista as possíveis fontes da lista de Hosts.

Tipo da fonte.

Descrição

ComputerNameDnsDomain

O nome do domínio DNS atribuído ao computador local. Se o computador local for um nó de um cluster, será usado o nome de domínio DNS do servidor virtual de cluster.

ComputerNameDnsFullyQualified

O nome DNS totalmente qualificado que identifica exclusivamente o computador local. Esse nome é uma combinação do nome de host do DNS e o nome de domínio do DNS, usando o formato HostName.DomainName. Se o computador local for um nó de um cluster, será usado o nome do DNS totalmente qualificado do servidor virtual de cluster.

ComputerNameDnsHostname

o nome do host de DNS do computador local. Se o computador local for um nó de um cluster, será usado o nome de host do DNS do servidor virtual de cluster.

ComputerNameNetBIOS

O nome NetBIOS do computador local. Se o computador local for um nó de um cluster, será usado o nome do NetBIOS do servidor virtual de cluster.

ComputerNamePhysicalDnsDomain

O nome do domínio DNS atribuído ao computador local. Se o computador local for um nó de um cluster, será usado o nome do computador local e não o nome do servidor virtual de cluster.

ComputerNamePhysicalDnsFullyQualified

O nome DNS totalmente qualificado que identifica exclusivamente o computador. Se o computador local for um nó de um cluster, será usado o nome do DNS totalmente qualificado do computador local e não o nome do servidor virtual de cluster.

O nome totalmente qualificado do DNS é uma combinação do nome de host do DNS e o nome de domínio do DNS, usando a forma HostName.DomainName.

ComputerNamePhysicalDnsHostname

O nome do host de DNS do computador local. Se o computador local for um nó de um cluster, será usado o nome de host do DNS e não o nome do servidor virtual de cluster.

ComputerNamePhysicalNetBIOS

O nome NetBIOS do computador local. Se o computador local for um nó de um cluster, será usado o nome do computador local e não do servidor virtual de cluster.

À medida que SPNs são adicionados, uma entrada é acrescentada ao log de rastreamento, que se assemelha ao seguinte:

rshost!rshost!10a8!01/07/2010-19:29:38:: i INFO: SPN Whitelist Added <ComputerNamePhysicalNetBIOS> - <theservername>.

rshost!rshost!10a8!01/07/2010-19:29:38:: i INFO: SPN Whitelist Added <ComputerNamePhysicalDnsHostname> - <theservername>.

Para obter mais informações, consulte Como registrar SPN (Nome da Entidade de Serviço) para um servidor de relatório e Sobre reservas e registro de URL (Reporting Services).