Skip to main content

Esta versão do GitHub Enterprise será descontinuada em 2022-09-28. 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. Para obter ajuda com a atualização, entre em contato com o suporte do GitHub Enterprise.

Autenticação SAML

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

Sobre problemas com a autenticação SAML

Mensagens de erro dos logs do GitHub Enterprise Server para autenticação do SAML com falha no log de autenticação em /var/log/github/auth.log. Você pode examinar as respostas neste arquivo de log e também pode configurar o log mais detalhado.

Para obter mais informações sobre os requisitos de resposta SAML, confira "Referência de configuração do SAML".

Configurando a depuração do SAML

Você pode configurar o GitHub Enterprise Server para gravar logs de depuração detalhados em /var/log/github/auth.log para cada tentativa de autenticação do SAML. É possível que você possa solucionar problemas com tentativas de autenticação com esta saída extra.

Avisos:

  • 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 do seu registro poderá aumentar muito mais rápido do que o normal, o que pode impactar negativamente o desempenho de GitHub Enterprise Server.
  • Teste novas configurações de autenticação para your GitHub Enterprise Server instance em um ambiente de teste antes de aplicar as configurações no seu ambiente de produção. Para obter mais informações, confira "Como configurar uma instância de preparo".
  1. No canto superior à direita de GitHub Enterprise Server, clique na foto do perfil e clique em Configurações da empresa. "Configurações da empresa" no menu suspenso da foto do perfil em GitHub Enterprise Server 1. Na barra lateral da empresa, clique em Políticas. Guia Políticas na barra lateral da conta corporativa 1. Em Políticas, clique em Opções. Guia Opções na barra lateral das configurações da conta corporativa

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

    Captura de tela da lista suspensa para habilitar a depuração do SAML

  3. Tentar efetuar o login no your GitHub Enterprise Server instance por meio do IdP do seu SAML.

  4. Revise a saída de depuração em /var/log/github/auth.log na your GitHub Enterprise Server instance.

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

    Captura de tela da lista suspensa para desaabilitar a depuração do SAML

Decodificação de respostas em auth.log

Algumas saídas em auth.log podem ser codificadas em Base64. Acesse o shell administrativo e use o utilitário base64 na your GitHub Enterprise Server instance para decodificar essas respostas. Para obter mais informações, confira "Como acessar o shell administrativo (SSH)".

$ base64 --decode ENCODED OUTPUT

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

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

Quando o usuário se conecta novamente, o GitHub Enterprise Server compara o mapeamento da NameID da conta com a resposta do IdP. Se a NameID na resposta do IdP não corresponder mais à NameID esperada pelo GitHub Enterprise Server 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 da NameID da conta do usuário no GitHub Enterprise Server corresponde à NameID do usuário no IdP. Para obter mais informações, confira "Como atualizar a NameID do SAML de um usuário".

Se a resposta SAML não estiver assinada ou se a assinatura não corresponder ao conteúdo, o log de autenticação mostrará a seguinte mensagem de erro:

Se o Recipient não corresponder à URL do ACS na your GitHub Enterprise Server instance, uma das duas mensagens de erro a seguir será exibido no log 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.

Lembre-se de definir o valor de Recipient no IdP como a URL completa do ACS da your GitHub Enterprise Server instance. Por exemplo, https://ghe.corp.example.com/saml/consume.

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 do GitHub Enterprise Server 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 Audience, a mensagem de erro a seguir será exibida no log de autenticação.

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

Lembre-se de definir o valor de Audience no IdP como a EntityId do your GitHub Enterprise Server instance, que é a URL completa da sua instância. Por exemplo, https://ghe.corp.example.com.

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 Enterprise Server, 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.

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.