Delegação de identidades para Serviços do Excel (SharePoint Server 2010)
Aplica-se a: Excel Services, SharePoint Server 2010
Tópico modificado em: 2016-11-30
Neste cenário, você adiciona o aplicativo de serviço Serviços do Excel ao ambiente do SharePoint Server e configura a delegação restrita Kerberos para permitir que o serviço atualize dados em uma planilha a partir de uma fonte de dados externa do SQL Server.
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ência do cenário
Para concluir este cenário, você precisa ter concluído os seguintes artigos:
Cenário 1: configuração principal
Cenário 2: autenticação Kerberos para SQL OLTP
Lista de verificação para configuração
Área de configuração | Descrição |
---|---|
Configuração do Active Directory |
Criar a conta de serviço dos Serviços do Excel Configurar o SPN na conta de serviço dos Serviços do Excel Configurar a delegação restrita Kerberos para servidores que executa(m) os Serviços do Excel Configurar a delegação restrita Kerberos para a conta de serviço dos Serviços do Excel |
Configuração do SharePoint Server |
Iniciar o Serviço de Tokens de Declarações para Tokens do Windows em servidores dos Serviços do Excel Iniciar a instância de serviço dos Serviços do Excel no servidor dos Serviços do Excel Criar o aplicativo e o proxy de serviço dos Serviços do Excel Configurar um local de arquivos confiáveis e definir configurações de autenticação dos Serviços do Excel |
Verificar a delegação restrita dos Serviços do Excel |
Criar uma biblioteca de documentos para hospedar a pasta de trabalho de teste Criar um banco de dados SQL de teste e uma tabela de teste Criar uma pasta de trabalho do Excel de teste com uma conexão de dados SQL Publicar uma pasta de trabalho no SharePoint Server e atualizar a conexão de dados |
Detalhes do ambiente do cenário
Caminhos para a delegação restrita Kerberos
Neste cenário, iremos configurar a conta de serviço dos Serviços do Excel do SharePoint Server para a delegação restrita Kerberos ao serviço do SQL Server.
Observação
Também iremos configurar o C2WTS (Serviço de Tokens de Declarações para Tokens do Windows) para usar uma conta de serviço dedicada. Se você deixar o C2WTS configurado para usar Sistema Local, será necessário configurar a delegação restrita na conta de computador referente ao computador que executa o C2WTS e os Serviços do Excel.
Autenticação lógica do SharePoint Server
O processo de autenticação neste cenário começa com a autenticação Kerberos do cliente no front-end da Web. O SharePoint Server 2010 converterá o token de autenticação do Windows em um token de declarações usando o STS (Serviço de Token de Segurança) local. O aplicativo de Serviços do Excel aceitará o token de declarações e o converterá em um token do Windows (Kerberos) usando o C2WTS (Serviço de Tokens de Declarações para Tokens do Windows), que faz parte do WIF (Windows Identity Framework). Em seguida, o aplicativo de Serviços do Excel usará o tíquete Kerberos do cliente para se autenticar na Fonte de Dados back-end.
Instruções de configuração passo a passo
Configuração do Active Directory
Criar a conta de serviço dos Serviços do Excel
Como prática recomendada, os Serviços do Excel devem ser executados com a sua própria identidade de domínio. Para configurar o Aplicativo de Serviços do Excel, é necessário criar contas do Active Directory. Neste exemplo, as seguintes contas foram criadas:
Serviço do SharePoint Server | Identidade do Pool de Aplicativos do IIS |
---|---|
Serviços do Excel |
vmlab\svcExcel |
Configurar o SPN na conta de serviço dos Serviços do Excel
A delegação restrita Kerberos deverá ser configurada se os Serviços do Excel forem delegar a identidade do cliente a uma fonte de dados back-end. Neste exemplo, os serviços do Excel consultarão dados de um banco de dados SQL transacional e, portanto, a delegação Kerberos é necessária.
O snap-in do MMC Usuários e Computadores do Active Directory é geralmente utilizado para configurar a delegação Kerberos. Para definir as configurações de delegação nesse snap-in, o objeto do Active Directory que está sendo configurado deve ter um SPN (nome de entidade de serviço) aplicado; caso contrário, a guia Delegação não ficará visível na caixa de diálogo de propriedades desse objeto. Embora os Serviços do Excel não exijam um SPN para poderem funcionar, iremos configurar um para essa finalidade.
Na linha de comando, execute o seguinte comando:
SETSPN -S SP/ExcelServices
Observação
O SPN não é válido. Ele é aplicado à conta de serviço especificada para revelar as opções de delegação no suplemento de usuários e computadores do AD. Existem outras maneiras com suporte para especificar as configurações de delegação (especificamente o atributo do AD msDS-AllowedToDelegateTo), mas esse tópico não será discutido neste documento.
Configurar a delegação restrita Kerberos para Serviços do Excel
Para permitir que os serviços do Excel deleguem a identidade do cliente, a delegação Kerberos precisa estar configurada. É necessário configurar essa delegação restrita com transição de protocolo para a conversão do token de declarações em um token do Windows via C2WTS do WIF.
Cada servidor que executa os Serviços do Excel deve ser confiável para delegar credenciais a cada serviço back-end no qual o Excel irá se autenticar. Além disso, a conta de serviço dos Serviços do Excel também deve estar configurada para permitir delegação aos mesmos serviços back-end.
No nosso exemplo, os seguintes caminhos de delegação estão definidos:
Tipo de Entidade | Nome da Entidade | Delegada ao Serviço |
---|---|---|
Usuário |
svcExcel |
MSSQLSVC/MySqlCluster.vmlab.local:1433 |
*Usuário |
svcC2WTS |
MSSQLSVC/MySqlCluster.vmlab.local:1433 |
**Computador |
VMSP10APP01 |
MSSQLSVC/MySqlCluster.vmlab.local:1433 |
* Configurado posteriormente neste cenário
** Apenas será necessário se o C2WTS estiver em execução como um sistema local
Para configurar a delegação restrita
Abra as propriedades do Objeto do Active Directory em Usuários e Computadores do Active Directory.
Navegue até a guia Delegação.
Selecione Confiar neste usuário para delegação apenas aos serviços especificados.
Selecione Usar qualquer protocolo de autenticação. Essa opção permite a transição de protocolos e é necessária para que a conta de serviço utilize o C2WTS.
Clique no botão Adicionar para selecionar a entidade de serviço à qual é possível fazer a delegação.
Selecione Usuários e Computadores.
Selecione a conta de serviço que executa o serviço ao qual você deseja fazer a delegação. Neste exemplo, usamos a conta de serviço para o serviço SQL.
Observação
A conta de serviço selecionada deve ter um SPN aplicado. No nosso exemplo, o SPN da conta foi configurado em um cenário anterior.
Clique em OK. Na tela seguinte, será solicitado que você selecione os SPNs aos quais deseja fazer a delegação.
Selecione os serviços para o cluster SQL e clique em OK.
Agora, você verá os SPNs selecionados na lista Serviços aos quais esta conta pode apresentar credenciais delegadas.
Repita essas etapas para cada caminho de delegação definido no início desta seção.
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) com o seguinte comando SetSPN:
SetSPN -L vmlab\svcSQL
Você verá o seguinte:
MSSQLSVC/MySqlCluster MSSQLSVC/MySqlCluster.vmlab.local:1433
Configuração do SharePoint Server
Configurar e iniciar o Serviço de Tokens de Declarações para Tokens do Windows em servidores dos Serviços do Excel
O C2WTS (Serviço de Tokens de Declarações para Tokens do Windows) é um componente do WIF (Windows Identity Foundation) responsável por converter tokens de declarações de usuários em tokens do Windows. Os Serviços do Excel usam o C2WTS para converter o token de declarações do usuário em um token do Windows quando os serviços precisam delegar credenciais a um sistema back-end que utiliza a autenticação do Windows integrada. O WIF é implantado com o SharePoint Server 2010, e o C2WTS pode ser iniciado na Administração Central.
Cada servidor de Aplicativo de Serviços do Excel deve executar o C2WTS localmente. O C2WTS não abre portas e não pode ser acessado por um chamador remoto. Além disso, o arquivo de configuração de serviço do C2WTS deve ser configurado para confiar especificamente na identidade do cliente de chamada local.
Como prática recomendada, você deve executar o C2WTS usando uma conta de serviço dedicada, e não como Sistema Local (a configuração padrão). A conta de serviço C2WTS requer permissões locais especiais em cada servidor no qual o serviço é executado. Por isso, lembre-se de configurar essas permissões sempre que o serviço for iniciado em um servidor. O ideal é configurar as permissões da conta de serviço no servidor local antes de iniciar o C2WTS. Porém, se essas permissões forem configuradas depois, você poderá reiniciar o C2WTS no console de gerenciamento de serviços do Windows (services.msc).
Para iniciar o C2WTS
Crie uma conta de serviço no Active Directory na qual executar o serviço. Neste exemplo, criamos vmlab\svcC2WTS.
Adicione um SPN (Nome de Entidade de Serviço) arbitrário à conta de serviço para expor as opções de delegação dessa conta em Usuários e Computadores do Active Directory. O SPN pode ter qualquer formato, pois a autenticação no C2WTS não é feita com o uso da autenticação Kerberos. Convém não usar um SPN HTTP, para evitar a possível criação de SPNs duplicados no seu ambiente. No nosso exemplo, registramos SP/C2WTS em vmlab\svcC2WTS usando o seguinte comando:
SetSPN -S SP/C2WTS vmlab\svcC2WTS
Configure a delegação restrita Kerberos na conta de serviço do C2WTS. Neste cenário, iremos delegar credenciais ao serviço SQL em execução com o nome de entidade de serviço MSSQLSVC/MySqlCluster.vmlab.local:1433.
Em seguida, configure as permissões necessárias do servidor local que são exigidas pelo C2WTS. Será necessário configurar essas permissões em cada servidor no qual o C2WTS é executado. No nosso exemplo, o servidor é VMSP10APP01. Faça logon nesse servidor e conceda as seguintes permissões ao C2WTS:
Adicione a conta de serviço aos Grupos de Administradores locais.
Em Diretiva de Segurança Local (secpol.msc), sob Atribuição de Direitos de Usuário, conceda as seguintes permissões à conta de serviço:
Atuar como parte do sistema operacional
Representar um cliente após autenticação
Fazer logon como um serviço
Abra Administração Central.
Em Segurança->Configurar Contas de Serviço Gerenciadas, registre a conta de serviço do C2WTS como uma conta gerenciada.
Em Serviços, selecione Gerenciar serviços no servidor.
Na caixa de seleção de servidor localizada no canto superior direito, selecione o(s) servidor(es) que executam Serviços do Excel. Neste exemplo, o servidor é VMSP10APP01.
Localize o Serviço de Tokens de Declarações para Tokens do Windows e inicie-o.
Vá até Segurança->Gerenciar Contas de Serviço. Mude a identidade do C2WTS para a nova conta gerenciada.
Observação
Se o C2WTS já estava sendo executado antes da configuração da conta de serviço dedicada, ou se você precisar alterar as permissões da conta de serviço após a execução do C2WTS, será necessário reiniciar o C2WTS a partir do console de serviços.
Além disso, em caso de problemas com o C2WTS após a reinicialização do serviço, talvez também seja necessário redefinir os pools de aplicativos do IIS que se comunicam com o C2WTS.
Adicionar dependências de Inicialização ao serviço C2WTS do WIF
Há um problema conhecido com o C2WTS no qual é possível que ele não seja inicializado com êxito automaticamente na ocasião da reinicialização do sistema. Uma solução alternativa para esse problema é configurar uma dependência de serviço para Serviços Criptográficos:
Abra a janela de Prompt de Comando.
Digite: sc config "c2wts" depend= CryptSvc
Localize o Serviço de Tokens de Declarações para Tokens do Windows no console de serviços.
Abra as propriedades do serviço.
Consulte a guia Dependências. Verifique se a opção Serviços Criptográficos está listada.
Clique em OK.
Conceder permissões à conta de serviço dos Serviços do Excel no banco de dados de conteúdo do aplicativo Web
Uma etapa necessária na configuração dos Office Web Applications para SharePoint Server 2010 é permitir que a conta de serviço do aplicativo Web tenha acesso aos bancos de dados de conteúdo de um determinado aplicativo Web. Neste exemplo, iremos conceder acesso ao banco de dados de conteúdo do aplicativo Web de "portal" para a conta de serviço dos Serviços do Excel usando o Windows PowerShell.
Execute o seguinte comando no Shell de Gerenciamento do SharePoint 2010:
$w = Get-SPWebApplication -Identity http://portal
$w.GrantAccessToProcessIdentity("vmlab\svcExcel")
Iniciar a instância de serviço dos Serviços do Excel no servidor dos Serviços do Excel
Antes de criar um aplicativo de serviço dos Serviços de Excel, inicie o serviço de servidor dos Serviços do Excel nos servidores de Farm designados.
Abra Administração Central.
Em Serviços, selecione Gerenciar serviços no servidor.
Na caixa de seleção de servidor localizada no canto superior direito, selecione o(s) servidor(es) que executa(m) Serviços do Excel. Neste exemplo, o servidor é VMSP10APP01.
Inicie o serviço dos Serviços de Cálculo do Excel.
Criar o aplicativo e o proxy de serviço dos Serviços do Excel
Em seguida, configure um novo aplicativo de serviço e um proxy de aplicativo dos Serviços do Excel para permitir que os aplicativos Web consumam Serviços do Excel:
Abra Administração Central.
Selecione Gerenciar Aplicativos de Serviço em Gerenciamento de Aplicativos.
Selecione Novo e depois clique em Aplicativo de Serviços do Excel.
Configure o novo aplicativo de serviço. Lembre-se de selecionar a conta de serviço correta (crie uma nova conta gerenciada se a conta de Serviços do Excel não estiver na lista).
Configurar um local de arquivos confiáveis e definir configurações de autenticação dos Serviços do Excel
Terminada a criação do aplicativo de Serviços do Excel, configure as propriedades no novo aplicativo de serviço para especificar um local de host confiável e configurações de autenticação.
Abra Administração Central.
Selecione Gerenciar Aplicativos de Serviço em Gerenciamento de Aplicativos.
Clique no link do novo Aplicativo de Serviço, que é Serviços do Excel neste exemplo.
Na tela de gerenciamento de serviços do Excel, clique em "Locais de Arquivos Confiáveis".
Adicione um novo local de arquivos confiáveis.
Especifique o local da sua biblioteca de teste.
Observação
No nosso exemplo, confiamos na URL do aplicativo Web raiz e em todos os seus elementos secundários. Em um ambiente de produção, você pode optar por restringir essa confiança a um local mais granular.
Em Dados Externos, selecione Bibliotecas de conexões de dados confiáveis e inseridas.
Observação
Este exemplo usará uma conexão inserida para se conectar ao SQL Server. No seu ambiente, você pode optar por criar um arquivo de conexão separado e armazená-lo em uma biblioteca de conexões de dados confiável. Nesse caso, será possível selecionar a opção Bibliotecas de conexões de dados confiáveis somente.
Altere o Tempo Decorrido do Cache de Dados Externos — Para fins de teste, é conveniente alterar o tempo de vida do cache de dados externos para garantir que as atualizações de dados sejam provenientes da fonte de dados, e não do cache. Em Dados Externos, altere as seguintes configurações:
Atualização automática (periódica/ao abrir) = 0
Atualização manual = 0
Observação
Em um ambiente de produção, convém definir uma configuração de cache maior que 0. Definir o cache como 0 é conveniente apenas para fins de teste.
Verificar a delegação restrita dos Serviços do Excel
Criar uma biblioteca de documentos para hospedar a pasta de trabalho de teste
Abra um site no caminho confiável que foi configurado na etapa anterior. Crie uma nova biblioteca de documentos para hospedar uma pasta de trabalho do Excel de teste.
Criar uma pasta de trabalho do Excel de teste com uma conexão de dados SQL
Em seguida, crie uma pasta de trabalho do Excel com uma conexão de dados com o novo banco de dados de teste:
Abra o Excel.
Na guia Dados, selecione De outras fontes->Do SQL Server.
Estabeleça uma conexão com a fonte de dados SQL de teste.
Selecione o banco de dados de teste e a tabela de teste (Sales neste exemplo).
Clique em Avançar. Clique no botão Configurações de Autenticação. Verifique se a Autenticação do Windows está especificada.
Clique em Concluir.
Selecione um relatório de tabela dinâmica.
Configure a tabela dinâmica e verifique se a fonte SQL retorna dados.
Publicar uma pasta de trabalho no SharePoint Server e atualizar a conexão de dados
A última etapa para validar o aplicativo de Serviços do Excel é publicar a pasta de trabalho e testar a atualização da conexão SQL inserida.
Clique na guia Arquivo.
Clique em Salvar e Enviar, em Salvar no SharePoint e depois em Procurar um local.
Insira o local da biblioteca confiável criada nas etapas anteriores.
Verifique se a opção Abrir no Excel no navegador está selecionada.
Nesse ponto, será aberta uma nova janela de navegador exibindo a sua pasta de trabalho de teste. Terminada a renderização dessa pasta de trabalho, atualize a conexão de dados clicando em Dados e depois em Atualizar Todas as Conexões.
Se a conexão de dados for atualizada, significa que você configurou com êxito a delegação Kerberos para serviços do Excel. Para ter uma conectividade de teste ainda maior, altere os dados de origem via SQL Management Studio e depois atualize a conexão. Você verá os dados recém-alterados na sua pasta de trabalho. Se não houver alterações visíveis, e você não tiver recebido erros ao atualizar, é provável que esteja vendo dados em cache. Por padrão, os Serviços do Excel farão o cache de dados provenientes de origens externas durante cinco minutos. É possível alterar essa configuração de cache; consulte Configurar um local de arquivos confiáveis e definir configurações de autenticação dos Serviços do Excel neste artigo para obter mais informações.