Sobre problemas com a autenticação SAML
GitHub Enterprise Server registra mensagens de erro sobre falhas na autenticação SAML nos logs do journal do systemd do contêiner github-unicorn. Você pode examinar as respostas neste log e também pode configurar o log mais detalhado.
Para obter mais informações sobre os requisitos de resposta SAML, consulte Referência de configuração do SAML.
Configurando a depuração do SAML
Você pode configurar GitHub Enterprise Server para registrar logs de depuração verbosos 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 pode afetar negativamente o desempenho de GitHub Enterprise Server.
- Teste as novas configurações de autenticação para sua instância do GitHub Enterprise Server em um ambiente de homologação antes de aplicar essas configurações em seu ambiente de produção. Para saber mais, confira Configurar uma instância de testes.
-
No canto superior à direita do GitHub Enterprise Server, clique na sua imagem do perfil e clique em Configurações da empresa.
-
Na parte superior da página, clique em Políticas.
-
Em Policies, clique em Options.
-
Em "Depuração do SAML", selecione o menu suspenso e clique em Habilitado.
-
Tente fazer login em sua instância do GitHub Enterprise Server por meio do seu IdP SAML.
-
Examine a saída de depuração no
systemdjournal degithub-unicornem sua instância do GitHub Enterprise Server. Para saber mais, confira Sobre os logs do sistema. -
Quando terminar de resolver os problemas, selecione o menu suspenso e clique em Desabilitado.
Decodificar respostas
Algumas saídas no diário de systemd para github-unicorn podem ser codificadas em Base64. Você pode acessar o shell administrativo e usar o utilitário base64 em sua instância do GitHub Enterprise Server para decodificar essas respostas. Para saber mais, confira Acessar o shell administrativo (SSH).
Para decodificar a saída, execute o comando a seguir, substituindo ENCODED_OUTPUT pela saída codificada do log.
base64 --decode ENCODED_OUTPUT
Erro: "Outro usuário já possui a conta"
Quando um usuário acessa sua instância do GitHub Enterprise Server pela primeira vez usando autenticação SAML, GitHub cria uma conta de usuário na instância e mapeia NameID e nameid-format do SAML à conta.
Quando o usuário faz login novamente, GitHub Enterprise Server compara o mapeamento de NameID e nameid-format da conta com a resposta do IdP. Se NameID ou nameid-format na resposta do IdP não corresponderem mais aos valores que GitHub espera para o usuário, o login falhará. 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 NameID e nameid-format da conta de usuário em GitHub Enterprise Server corresponde a NameID e nameid-format do usuário no seu IdP. Para saber mais, confira Como atualizar o NameID do SAML de um usuário.
Erro: O destinatário na resposta SAML estava em branco ou não era válido.
Se o Recipient não corresponder à URL do ACS para sua instância do GitHub Enterprise Server, uma das duas mensagens de erro a seguir aparecerá 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.
Certifique-se de definir, no seu IdP, o valor de Recipient como a URL ACS completa de sua instância do GitHub Enterprise Server. 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.
Certifique-se de configurar asserçõ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 Audience, 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
Certifique-se de definir, no seu IdP, o valor de Audience como EntityId para sua instância do GitHub Enterprise Server, 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, 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: "falha - A validação SAML atualizada retornou um resultado inválido"
Esse erro pode ocorrer na versão 3.17.0 ou posterior de sua instância do GitHub Enterprise Server. Ele indica que GitHub não é possível processar corretamente a resposta SAML recebida do provedor de identidade. Abra um GitHub tíquete de suporte para que as GitHub equipes de Suporte e Engenharia possam investigar e resolver o problema.
Erro: incompatibilidade de código hash
Um erro de "Digest mismatch" indica que seu IdP SAML está usando um certificado de assinatura do SAML diferente daquele que você carregou em GitHub ou que o Método de Assinatura ou Método de Resumo configurado em GitHub difere daquele que seu IdP está usando.
Baixe novamente esse certificado SAML do seu IdP e valide-o usando uma ferramenta online, como a ferramenta Formatar um certificado x509 do OneLogin. Em seguida, carregue o certificado SAML novamente na seção "Autenticação" no console GitHub Enterprise Server de gerenciamento. Consulte Administrar sua instância por meio da interface do usuário da Web.