Skip to main content

Esta versão do GitHub Enterprise Server será descontinuada em 2026-03-17. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, segurança aprimorada e novos recursos, atualize para a última versão do GitHub Enterprise Server. Para obter ajuda com a atualização, entre em contato com o suporte do GitHub Enterprise.

Solucionando problemas de autenticação SAML

Se o SSO (logon único) de SAML for usado e as pessoas não conseguirem se autenticar para acessar o GitHub, você poderá solucionar o problema.

Sobre problemas com a autenticação SAML

Os logs de mensagens de erro de GitHub Enterprise Server para autenticação SAML com falha são registrados em logs de diário do systemd para o contêiner . Você pode examinar as respostas neste log e também pode configurar o log mais detalhado.

Para mais informações sobre os requisitos de resposta SAML, confira AUTOTITLE.

Configurando a depuração do SAML

É possível configurar GitHub Enterprise Server para gravar logs de depuração detalhados para cada tentativa de autenticação SAML. Você pode solucionar falhas em tentativas de autenticação com esta saída extra.

Aviso

  • Habilite apenas a depuração do SAML temporariamente e desabilite a depuração imediatamente após terminar a solução de problemas. Se você deixar a depuração habilitada, o tamanho dos logs aumentará muito mais rápido do que o normal, o que poderá ter um impacto negativo no desempenho do GitHub Enterprise Server.
  • Teste as novas configurações de autenticação de sua instância do GitHub Enterprise Server em um ambiente de preparo antes de aplicá-las ao ambiente de produção. Para saber mais, confira AUTOTITLE.
  1. No canto superior à direita do GitHub Enterprise Server, clique na sua imagem do perfil e clique em Configurações da empresa.

  2. Em Policies, clique em Options.

  3. Em "Depuração do SAML", selecione o menu suspenso e clique em Habilitado.

  4. Tente entrar no sua instância do GitHub Enterprise Server pelo seu IdP do SAML.

  5. Examine a saída da depuração no diário de para no sua instância do GitHub Enterprise Server. Para saber mais, confira AUTOTITLE.

  6. Quando terminar de resolver os problemas, selecione o menu suspenso e clique em Desabilitado.

Decodificar respostas

Alguma saída no diário de para pode ser codificada em Base64. Você pode acessar o shell administrativo e usar o utilitário em sua instância do GitHub Enterprise Server para decodificar essas respostas. Para saber mais, confira AUTOTITLE.

Para decodificar a saída, execute o comando a seguir, substituindo pela saída codificada do log.

base64 --decode ENCODED_OUTPUT

Erro: "Outro usuário já possui a conta"

Quando um usuário entra em sua instância do GitHub Enterprise Server pela primeira vez com a autenticação SAML, GitHub cria uma conta de usuário na instância e mapeia SAML e para a conta.

Quando o usuário se conecta novamente, o GitHub Enterprise Server compara o mapeamento de e da conta com a resposta do IdP. Se ou na resposta do IdP não corresponder mais aos valores esperados do GitHub para o usuário, ocorrerá uma falha na entrada. O usuário receberá a seguinte mensagem.

Outro usuário já possui a conta. Solicite ao administrador que verifique o registro de autenticação.

De modo geral, a mensagem indica que o nome de usuário ou endereço de email da pessoa foi alterado no IdP. Verifique se o mapeamento de e da conta do usuário no GitHub Enterprise Server corresponde a e do usuário no IdP. Para saber mais, confira AUTOTITLE.

Erro: O destinatário na resposta SAML estava em branco ou não era válido.

Se a URL do ACS em sua instância do GitHub Enterprise Server não corresponder, uma das duas mensagens de erro a seguir aparecerá no registro de autenticação quando um usuário tentar se autenticar.

Recipient in the SAML response must not be blank.
Recipient in the SAML response was not valid.

Defina o valor de no IdP como a URL completa do ACS de sua instância do GitHub Enterprise Server. Por exemplo, .

Erro: "Resposta do SAML não foi assinada ou foi modificada"

Se seu IdP não assinar a resposta do SAML ou a assinatura não corresponder ao conteúdo, será exibida a seguinte mensagem de erro no registro de autenticação.

SAML Response is not signed or has been modified.

Verifique se você configurou as declarações assinadas para o aplicativo GitHub no seu IdP.

Erro: "Audiência é inválida" ou "Nenhuma declaração encontrada"

Se a resposta do IdP tiver um valor ausente ou incorreto para , a mensagem de erro a seguir será exibida no log de autenticação.

Audience is invalid. Audience attribute does not match https://YOUR-INSTANCE-URL

Defina o valor de no IdP como a de sua instância do GitHub Enterprise Server, que é a URL completa da instância. Por exemplo, .

Erro: "A hora atual é anterior à condição NotBefore"

Esse erro pode ocorrer quando há uma diferença de tempo muito grande entre o IdP e o GitHub, o que geralmente ocorre com IdPs auto-hospedados.

Para evitar esse problema, recomendamos apontar o dispositivo para a mesma origem do protocolo NTP que o IdP, se possível. Se você encontrar esse erro, verifique se a hora no dispositivo está sincronizada corretamente com o servidor NTP. Use o comando chronyc no shell administrativo para sincronizar a hora imediatamente. Para saber mais, confira Configurar a sincronização de hora.

Se você usa o ADFS como o IdP, defina também NotBeforeSkew no ADFS como 1 minuto para o GitHub. Se NotBeforeSkew for definido como 0, mesmo diferenças de tempo muito pequenas, incluindo milissegundos, poderão causar problemas de autenticação.

Erro: incompatibilidade de código hash

Um erro "Digest mismatch" indica que seu IdP SAML está usando um certificado de autenticação SAML diferente daquele que você carregou para o GitHub, ou o Signature Method ou o Digest Method configurado no GitHub difere do que seu IdP está usando.

Baixe novamente esse certificado SAML do seu IdP e valide-o usando uma ferramenta online, como a ferramenta Format a x509 cert do OneLogin. Depois carregue o certificado SAML novamente na seção "Authentication" no console de gerenciamento do GitHub Enterprise Server. Confira AUTOTITLE.