Visão geral de extensões de segurança
Uma extensão de segurança do Reporting Services habilita a autenticação e a autorização de usuários ou grupos; ou seja, ela permite que diferentes usuários façam logon em um servidor de relatório e, com base em suas identidades, executem diferentes tarefas ou operações. Por padrão, o Reporting Services usa uma extensão de autenticação baseada em Windows, que usa protocolos de contas Windows para verificar as identidades de usuários que afirmam ter contas no sistema. O Reporting Services usa um sistema de segurança baseada em função para autorizar usuários. O modelo de segurança baseada em função do Reporting Services é semelhante aos modelos de segurança baseada em função de outras tecnologias.
Como extensões de segurança se baseiam em uma API aberta e extensível, você pode criar autenticação nova e extensões de autorização no Reporting Services. Este é um exemplo de implementação de extensão de segurança típica que usa a autenticação baseada em formulários e a autorização:
Conforme mostrado na ilustração, a autenticação e a autorização ocorrem desta forma:
Um usuário tenta acessar o Gerenciador de Relatórios usando uma URL e é redirecionado para um formulário que coleta credenciais de usuário para o aplicativo cliente.
O usuário submete credenciais ao formulário.
As credenciais de usuário são submetidas ao serviço Web do Reporting Services através do método LogonUser.
O serviço Web chama a extensão de segurança fornecida pelo cliente e verifica se há nome e senha do usuário na autoridade de segurança personalizada.
Após a autenticação, o serviço Web cria um tíquete de autenticação (conhecido como "cookie"), gerencia o tíquete e verifica a função do usuário para a Home page do Gerenciador de Relatórios.
O serviço Web devolve o cookie ao navegador e exibe a interface de usuário apropriada no Gerenciador de Relatórios.
Depois da autenticação do usuário, o navegador faz solicitações ao Gerenciador de Relatórios enquanto transmite o cookie no cabeçalho HTTP. Essas solicitações são uma resposta a ações do usuário dentro do aplicativo Gerenciador de Relatórios.
O cookie é transmitido no cabeçalho HTTP para o serviço Web junto com a operação de usuário solicitada.
O cookie é validado; quando ele é válido, o servidor de relatório retorna o descritor de segurança e outras informações sobre a operação solicitada do banco de dados do servidor de relatório.
Quando o cookie é válido, o servidor de relatório faz uma chamada à extensão de segurança para verificar se o usuário está autorizado a executar a operação específica.
Se o usuário estiver autorizado, o servidor de relatório executará a operação solicitada e retornará o controle ao chamador.
Depois da autenticação do usuário, o acesso de URL ao servidor de relatório usa o mesmo cookie. O cookie é transmitido no cabeçalho HTTP.
O usuário continua solicitando operações no servidor de relatório até o término da sessão.
Quando implementar uma extensão de segurança
É recomendável usar a Autenticação do Windows quando isso é possível. Porém, a autenticação personalizada e a autorização do Reporting Services podem ser apropriadas nestes dois casos:
Você tem um aplicativo Internet ou extranet que não pode usar contas do Windows.
Você tem usuários e funções com definição personalizada e precisa fornecer um esquema de autorização compatível no Reporting Services.