O serviço do AD FS 2.0 não é iniciado

Este artigo fornece etapas de solução de problemas para a configuração de serviço do ADFS e problemas de inicialização.

Aplica-se a: Windows Server 2012 R2
Número de KB original: 3044973

Resumo

A maioria dos problemas do ADFS 2.0 pertence a uma das seguintes categorias de main. Este artigo contém as instruções passo a passo para solucionar problemas de serviço do ADFS.

Sintomas

  • O serviço do AD FS não é iniciado.

  • O serviço do AD FS é iniciado, mas os seguintes erros são registrados no log de Administração do AD FS após uma reinicialização:

    • ID do evento: 220
      A configuração do Serviço de Federação não pôde ser carregada corretamente do banco de dados de configuração do AD FS.
    • ID do evento: 352
      Uma operação SQL Server no banco de dados de configuração do AD FS com falha de cadeia de conexão %1.
    • ID do evento: 102
      Houve um erro ao habilitar pontos de extremidade do Serviço de Federação.

Resolução

Para resolve esse problema, siga estas etapas, na ordem fornecida. Essas etapas ajudarão você a determinar a causa do problema. Verifique se você marcar se o problema é resolvido após cada etapa.

Etapa 1: verificar se o tempo limite do serviço do AD FS durante a inicialização

Se o serviço do AD FS terminar quando ele tentar iniciar, você receberá a seguinte mensagem de erro:

O serviço não respondeu à solicitação de início ou controle em tempo hábil.

Corrigir tempos de serviço do AD FS

Altere os dados de valor do valor DWORD do ServicesPipeTimeout para 60000 na chave Controle . Para fazer isso, siga estas etapas:

  1. No servidor do AD FS, abra o Registro Editor.

  2. Localize e clique na seguinte chave do registro:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet

  3. Clique na subchave Controle .

  4. Clique com o botão direito do mouse no valor DWORD do ServicesPipeTimeout e clique em Modificar. Se não houver nenhum valor do ServicesPipeTimeout , crie-o.

  5. Clique em Decimal.

  6. Digite 60000 e clique em OK. Para obter mais informações sobre esse erro de tempo limite, consulte AD FS 2.0: O serviço falha ao iniciar: "O serviço não respondeu à solicitação de início ou controle em tempo hábil".

Etapa 2: verificar se o banco de dados de configuração do AD FS está em execução

  • Se você estiver usando Banco de Dados Interno do Windows (WID) como um banco de dados de configuração do AD FS, abra services.msc e marcar se o serviço Banco de Dados Interno do Windows está em execução.

  • Se você estiver usando o serviço SQL Server como um banco de dados de configuração do AD FS, abra services.msc. Verifique se o serviço SQL Server está em execução. Você também pode criar um arquivo Test.udl e preencher o cadeia de conexão para testar a conectividade com a Microsoft SQL Server.

Como corrigir

Abra Services.msc e inicie o serviço de Banco de Dados Interno do Windows ou SQL Server.

Para um servidor do AD FS que usa SQL Server como banco de dados de configuração, você também deve marcar duas configurações de segurança, da seguinte maneira:

  1. Conecte-se ao servidor que está executando SQL Server usando o SQL Management Studio.

  2. Verifique se a identidade do serviço Windows do AD FS 2.0 existe no console SQL Server no nóLogons deSegurança>. Se não o fizer, adicione-o.

  3. Verifique se a identidade de serviço do Windows do AD FS 2.0 existe emUsuários deSegurança>do Banco de Dados>AdfsConfiguration> e se ela é dona do esquema IdentityServerPolicy. Se não o fizer, adicione-o.

Etapa 3: verificar a conta do Serviço do AD FS

  1. Verifique se o serviço do AD FS e o AppPool do IIS estão em execução em uma conta de serviço válida. Se você alterou a senha da conta de serviço, verifique se a nova senha está atualizada no serviço do AD FS e no AppPool do IIS.

    1. Abra Services.msc, clique com o botão direito do mouse em Serviço do AD FS 2.0 e clique em Propriedades. Na guia Logon , verifique se a nova conta de serviço do AD FS está listada na caixa Essa conta .

    2. Abra o IIS Manager, navegue até Pools de Aplicativos, clique com o botão direito do mouse em ADFSAppPool e clique em Configurações Avançadas. Na seção Modelo de Processo , verifique se a nova conta de serviço do AD FS está listada como Identidade.

  2. Verifique se a conta de serviço tem permissões suficientes no banco de dados do AD FS. Você deve se preocupar com a permissão se tiver alterado a conta de serviço em que o ADFS está em execução.

    Se você estiver usando SQL Server como servidor de configuração, siga estas etapas para redefinir a permissão para a conta de serviço:

    1. Em um prompt de comando, execute o seguinte comando:

      fsconfig.exe /CreateSQLScripts /ServiceAccount <ADFS service account> /ScriptDestinationFolder <path to create scripts>
      
    2. Copie o script que você criou para o servidor que está executando SQL Server.

    3. Execute o script no servidor.

  3. Verifique se a conta de serviço leu e modificou permissões no contêiner de compartilhamento de certificados (CN=<GUID,CN>=ADFS,CN=Microsoft,CN=Program Data,DC=<Domain,DC>=<COM>).

    1. Em um controlador de domínio, abra ADSIEDIT.msc.

    2. Conecte-se ao contexto de nomenclatura padrão.

    3. Navegue até CN=<GUID,CN>=ADFS,CN=Microsoft,CN=Program Data,DC=<Domain,DC>=<COM>. Um exemplo de GUID é 62b8a5cb-5d16-4b13-b616-06caea706ada.

    4. Clique com o botão direito do mouse no GUID e clique em Propriedades. Se houver mais de um GUID, siga estas etapas para localizar o GUID para o servidor que está executando o serviço AD FS.

      1. No servidor que está executando o serviço do AD FS, inicie Windows PowerShell.

      2. Execute os seguintes comandos:

        Add-PSSnapin microsoft.adfs.powershell
        
        Get-ADFSProperties
        
      3. O GUID está listado em CertificateShareingContainer.

  4. Verifique se a nova conta de serviço tem a permissão De leitura na chave privada do certificado de comunicação de serviço do AD FS.

    1. Crie um MMC (Console de Gerenciamento da Microsoft) usando o snap-in Certificados que tem como destino o repositório de certificados do Computador Local.
    2. Expanda o MMC e selecione Gerenciar Chaves Privadas.
    3. Na guia Segurança , adicione a conta de serviço do AD FS e conceda a permissão de leitura a essa conta.
  5. Verifique se o HOST/ADFSServiceName foi adicionado na conta de serviço do AD FS e foi removido da conta anterior (caso a conta de serviço tenha sido alterada).

    1. Clique com o botão direito do mouse em Prompt de Comando e clique em Executar como administrador.
    2. Digite SetSPN -f -q host/ <Federation service name> e pressione Enter.

    Neste comando, <o nome> do serviço federação representa o nome de serviço FQDN (nome de domínio totalmente qualificado) do ponto de extremidade de serviço do AD FS. Você pode encontrar o nome do serviço na caixa de diálogo Propriedades do Serviço de Federação :

    Captura de tela do serviço de federação janela Propriedades mostrando o nome do Serviço de Federação.

    Para adicionar ou remover o SPN da conta, siga estas etapas:

    1. Em um controlador de domínio, abra ADSIEDIT.msc.

    2. Conecte-se ao contexto de nomenclatura padrão.

    3. Expanda para CN=Users,CN=Microsoft,CN=Program Data,DC=<Domain,DC>=<COM>.

    4. Localize a conta de serviço. Clique com o botão direito do mouse na conta de serviço e clique em Propriedades.

    5. Localize o atributo servicePrincipalName e clique em Editar.

    6. Adicione ou remova o SPN do serviço do AD FS. Aqui está um exemplo de um SPN de serviço do AD FS:

      HOST/newadfs.contoso.com

  6. Se você alterar a senha da conta de serviço, verifique se a nova senha está atualizada no serviço do AD FS e no IIS AD FS AppPool.

  7. Verifique se a conta de serviço do AD FS está no grupo de Administração local. Para evitar possíveis problemas, conceda os direitos de administrador local da conta de serviço do AD FS.

Etapa 4: atualizar o serviço do AD FS para a versão mais recente

Verifique se as atualizações a seguir estão instaladas. Se não estiverem, instale-os.

Etapa 5: corrigir uma falha de serviço intermitente do AD FS

Se você encontrar uma falha de serviço intermitente do AD FS, marcar se o problema iniciado após a atualização de segurança 2894844 foi aplicado. Nessa situação, o AD FS falha e gera um número de referência quando é acessado de uma rede externa ou por meio de uma comunicação baseada em formulário.

Se o problema tiver começado após a atualização de segurança 2894844 foi aplicada, você poderá estar enfrentando o problema descrito na causa 1: o aplicativo Web está em execução em uma seção farm (ambiente multi-servidor) em Resolver exibir erros de MAC (código de autenticação de mensagem de estado).

Para corrigir esse problema, defina a mesma chave de computador estática em todos os servidores do AD FS e no proxy do AD FS:

  1. No Gerenciador do IIS, localize e abra a pasta adfs/ls.
  2. Na seção ASP.NET, clique em Machine Key.
  3. Desmarque as caixas gerar automaticamente no runtime e gerar uma chave exclusiva para cada aplicativo marcar caixas para a chave validação e a chave Descriptografia.
  4. Clique em Gerar Chaves.
  5. Clique em Aplicar.
  6. Copie as chaves de validação e descriptografia do primeiro servidor do AD FS e cole essas chaves para todos os outros servidores.

Etapa 6: verifique se os certificados de comunicação de serviço, assinatura de token e descriptografação de token do ADFS estão configurados corretamente

Para obter mais informações, consulte Erro de certificado do ADFS 2.0: ocorreu um erro durante uma tentativa de criar a cadeia de certificados.